Облачная платформаAdvanced

(Необязательно) Установка нативных драйверов KVM на KVM ECS

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сценарии

Перед использованием KVM ECS для создания приватного образа, необходимо установить нативные драйверы KVM на ECS. Если драйверы уже установлены, пропустите этот раздел.

Caution

Если вы не установите драйверы KVM, NIC‑ы ECS могут не обнаруживаться, и ECS не сможет взаимодействовать с другими ресурсами.

Предварительные условия

  • Нативные драйверы KVM не установлены на ECS.
    1. Проверьте, установлены ли драйверы VirtIO. Команда зависит от операционной системы.
      • CentOS/EulerOS

        Если корневая файловая система смонтирована initramfs, выполните следующую команду:

        lsinitrd /boot/initramfs-`uname -r`.img | grep virtio

        Если корневая файловая система смонтирована initrd, выполните следующую команду:

        lsinitrd /boot/initrd-`uname -r` | grep virtio
      • Ubuntu/Debian
        lsinitramfs /boot/initrd.img-`uname -r` |grep virtio
      • SUSE/openSUSE
        • SUSE 12 SP1/openSUSE 13 или более ранние:
          lsinitrd /boot/initrd-`uname -r` | grep virtio
        • SUSE 12 SP1 или более новые, чем SUSE 12 SP1/openSUSE 13:

          Если корневая файловая система смонтирована initramfs, выполните следующую команду:

          lsinitrd /boot/initramfs-`uname -r`.img | grep virtio

          Если корневая файловая система монтируется initrd, выполните следующую команду:

          lsinitrd /boot/initrd-`uname -r` | grep virtio

      Если драйверы VirtIO установлены, пропустите этот раздел.

      Если драйверы VirtIO не установлены, установите их в соответствии с инструкциями в этом разделе.

  • Ядро ECS должно быть новее 2.6.24.
  • Отключите антивирус и программное обеспечение для обнаружения вторжений. Вы можете включить программное обеспечение после установки драйверов KVM.
  • Вы выполнили операции в Изменение идентификаторов дисков в файле GRUB на UUID и Изменение идентификаторов дисков в файле fstab на UUID.

Процедура

Измените файл конфигурации в соответствии с дистрибутивом Linux.

Таблица 1Изменение файлов конфигурации для различных дистрибутивов Linux

Дистрибутив

Конфигурация

Ссылка

CentOS/EulerOS

Возьмём CentOS 7.0 в качестве примера.

  1. В файле /etc/dracut.conf добавьте драйверы VirtIO в add_drivers, включая virtio_blk, virtio_scsi, virtio_net, virtio_pci, virtio_ring и virtio. Имена драйверов разделяйте пробелами.
  2. Сохраните и закройте файл /etc/dracut.conf и выполните команду dracut -f для регенерации initrd.

CentOS и EulerOS

Ubuntu/Debian

  1. В файле /etc/initramfs-tools/modules добавьте драйверы VirtIO, включая virtio_blk, virtio_scsi, virtio_net, virtio_pci, virtio_ring и virtio. Разделяйте имена драйверов пробелами.
  2. Сохраните и закройте файл /etc/initramfs-tools/modules и выполните команду update-initramfs -u для регенерации initrd.

Ubuntu и Debian

SUSE/openSUSE

Если версия ОС старше SUSE 12 SP1 или openSUSE 13:

  1. В файле /etc/sysconfig/kernel добавьте драйверы VirtIO в INITRD_MODULES="". Драйверы VirtIO включают virtio_blk, virtio_scsi, virtio_net, virtio_pci, virtio_ring и virtio. Разделяйте имена драйверов пробелами.
  2. Выполните команду mkinitrd для регенерации initrd.

SUSE и openSUSE (раньше SUSE 12 SP1 или openSUSE 13)

Если версия ОС — SUSE 12 SP1:

  1. В файле /etc/dracut.conf добавьте драйверы VirtIO в add_drivers. Драйверы VirtIO включают virtio_blk, virtio_scsi, virtio_net, virtio_pci, virtio_ring и virtio. Разделяйте имена драйверов пробелами.
  2. Выполните команду dracut -f для регенерации initrd.

SUSE и openSUSE (SUSE 12 SP1)

Если версия ОС новее SUSE 12 SP1 или openSUSE 13:

  1. В файле /etc/dracut.conf добавьте драйверы VirtIO в add_drivers, включая virtio_blk, virtio_scsi, virtio_net, virtio_pci, virtio_ring и virtio. Разделяйте имена драйверов пробелами.
  2. Сохраните и закройте файл /etc/dracut.conf и выполните команду dracut -f для регенерации initrd.

SUSE и openSUSE (новее SUSE 12 SP1 или openSUSE 13)

CentOS и EulerOS

  1. Выполните следующую команду, чтобы открыть файл /etc/dracut.conf:
    vi /etc/dracut.conf
  2. Нажмите i, чтобы перейти в режим вставки, и добавьте драйверы VirtIO в add_drivers (формат зависит от ОС).
    [root@CTU10000xxxxx ~]# vi /etc/dracut.conf
    # additional kernel modules to the default
    add_drivers+=" virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
    ....
  3. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет изменения и закрывает файл /etc/dracut.conf.
  4. Выполните следующую команду для регенерации initrd:
    dracut -f /boot/initramfs-2.6.32-573.8.1.el6.x86_64.img

    If the virtual file system is not the default initramfs, run the dracut -f <actual-initramfs-or-initrd-filename> command. The actual initramfs or initrd file name can be obtained from the grub.cfg file, which can be /boot/grub/grub.cfg, /boot/grub2/grub.cfg, or /boot/grub/grub.conf depending on the OS.

  5. Если виртуальная файловая система — initramfs, выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:
    lsinitrd /boot/initramfs-`uname -r`.img | grep virtio

    Если виртуальная файловая система — initrd, выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:

    lsinitrd /boot/initrd-`uname -r` | grep virtio

    Предположим, что виртуальная файловая система — initramfs. Будет выведен следующий вывод команды:

    [root@CTU10000xxxxx home]# lsinitrd /boot/initramfs-`uname -r`.img | grep virtio
    -rwxr--r-- 1 root root 23448 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/block/ virtio_blk.ko
    -rwxr--r-- 1 root root 50704 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/net/ virtio_net.ko
    -rwxr--r-- 1 root root 28424 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/scsi/ virtio_scsi.ko
    drwxr-xr-x 2 root root 0 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/ virtio
    -rwxr--r-- 1 root root 14544 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio/ virtio.ko
    -rwxr--r-- 1 root root 21040 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio/ virtio_pci.ko
    -rwxr--r-- 1 root root 18016 Jul 16 17:53 lib/modules/2.6.32-573.8.1.el6.x86_64/kernel/drivers/virtio/ virtio_ring.ko
    Note

    If you add built-in drivers to the initrd or initramfs file, the ECS will not be affected. This makes it easy to modify the drivers. However, you cannot check the drivers by running the lsinitrd command. You can run the following commands to check whether there are built-in drivers in the kernel:

    cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y

Ubuntu и Debian

  1. Выполните следующую команду, чтобы открыть файл modules:
    vi /etc/initramfs-tools/modules
  2. Нажмите i, чтобы перейти в режим редактирования и добавить драйверы VirtIO в файл /etc/initramfs-tools/modules (формат зависит от ОС).
    [root@CTU10000xxxxx ~]#vi /etc/initramfs-tools/modules
    ...
    # Examples:
    #
    # raid1
    # sd_mOd
    virtio_blk
    virtio_scsi
    virtio_net
    virtio_pci
    virtio_ring
    virtio
  3. Press Esc, enter :wq, and press Enter. The system saves the change and exits the /etc/initramfs-tools/modules file.
  4. Выполните следующую команду, чтобы пересоздать initrd:
    update-initramfs -u
  5. Выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:
    lsinitramfs /boot/initrd.img-`uname -r` |grep virtio
    [root@ CTU10000xxxxx home]# lsinitramfs /boot/initrd.img-`uname -r` |grep virtio
    lib/modules/3.5.0-23-generic/kernel/drivers/scsi/ virtio_scsi.ko
    Note

    If you add built-in drivers to the initrd or initramfs file, the ECS will not be affected. This makes it easy to modify the drivers. However, you cannot check the drivers by running the lsinitrd command. You can run the following commands to check whether there are built-in drivers in the kernel:

    [root@ CTU10000xxxxx home] # cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y
    CONFIG_VIRTIO_BLK=y
    CONFIG_VIRTIO_NET=y
    CONFIG_VIRTIO=y
    CONFIG_VIRTIO_RING=y
    CONFIG_VIRTIO_PCI=y
    CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y

SUSE и openSUSE (версии ранее SUSE 12 SP1 или openSUSE 13)

Modify the /etc/sysconfig/kernel file.

  1. Run the following command to modify the /etc/sysconfig/kernel file:
    vi / etc/sysconfig/kernel
  2. Add VirtIO drivers to INITRD_MODULES="" (the format of drivers depends on the OS).
    SIA10000xxxxx:~ # vi /etc/sysconfig/kernel
    # (like drivers for scsi-controllers, for lvm or reiserfs)
    #
    INITRD_MODULES="ata_piix ata_generic virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
  3. Run the mkinitrd command to regenerate initrd.
    Note

    If the virtual file system is not the default initramfs or initrd, run dracut -f <actual-initramfs-or-initrd-filename>. The actual initramfs or initrd file name can be obtained from the menu.lst or grub.cfg file (/boot/grub/menu.lst, /boot/grub/grub.cfg, or /boot/grub2/grub.cfg).

    Ниже приведён пример файла initrd для SUSE 11 SP4:

    default 0
    timeout 10
    gfxmenu (hd0,0)/boot/message
    title sles11sp4_001_[_VMX_]
    root (hd0,0)
    kernel /boot/linux.vmx vga=0x314 splash=silent console=ttyS0,115200n8 console=tty0 net.ifnames=0 NON_PERSISTENT_DEVICE_NAMES=1 showopts
    initrd /boot/initrd.vmx
    title Failsafe_sles11sp4_001_[_VMX_]
    root (hd0,0)
    kernel /boot/linux.vmx vga=0x314 splash=silent ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max+cstate=1 nomodeset x11failsafe console=ttyS0,115200n8 console=tty0 net.ifnames=0 NON_PERSISTENT_DEVICE_NAMES=1 showopts
    initrd /boot/initrd.vmx

    /boot/initrd.vmx in the initrd line is the initrd file actually used. So, the command used to regenerate initrd is dracut -f /boot/initrd.vmx. If /boot is missing from the initrd file path, you need to add it when you run the dracut -f command. For example, if the file path is /initramfs-xxx, the command should be dracut -f /boot/initramfs-xxx.

  4. Выполните следующую команду, чтобы проверить, установлены ли драйверы KVM VirtIO:

    lsinitrd /boot/initrd-`uname -r` | grep virtio

    SIA10000xxxxx:~ # lsinitrd /boot/initrd-`uname -r` | grep virtio
    -rwxr--r-- 1 root root 19248 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/ virtio_scsi.ko
    -rwxr--r-- 1 root root 23856 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/block/ virtio_blk.ko
    drwxr-xr-x 2 root root 0 Jul 12 14:53 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/ virtio
    -rwxr--r-- 1 root root 15848 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/ virtio_ring.ko
    -rwxr--r-- 1 root root 20008 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/ virtio_pci.ko
    -rwxr--r-- 1 root root 12272 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/ virtio.ko
    -rwxr--r-- 1 root root 38208 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/ virtio_net.ko

  5. Перезапустите ECS.
  6. Выполните следующую команду, чтобы проверить, существуют ли драйверы KVM в initrd:
    lsinitrd /boot/initrd-`uname - r` | grep virtio
    SIA10000xxxxx:~ # lsinitrd /boot/initrd-`uname -r` | grep virtio
    -rwxr--r-- 1 root root 19248 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/scsi/ virtio_scsi.ko
    -rwxr--r-- 1 root root 23856 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/block/ virtio_blk.ko
    drwxr-xr-x 2 root root 0 Jul 12 14:53 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/ virtio
    -rwxr--r-- 1 root root 15848 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/ virtio_ring.ko
    -rwxr--r-- 1 root root 20008 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/ virtio_pci.ko
    -rwxr--r-- 1 root root 12272 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/virtio/ virtio.ko
    -rwxr--r-- 1 root root 38208 Jun 22 2012 lib/modules/2.6.32-279.el6.x86_64/kernel/drivers/net/ virtio_net.ko
    Note

    Если вы добавляете встроенные драйверы в файл initrd или initramfs, то ECS не будет затронут. Это упрощает изменение драйверов. Однако проверить драйверы с помощью команды lsinitrd нельзя. Вы можете выполнить следующие команды, чтобы проверить наличие встроенных драйверов в ядре:

    cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y

SUSE and openSUSE (SUSE 12 SP1)

Измените файл /etc/dracut.conf.

  1. Выполните следующую команду, чтобы открыть файл /etc/dracut.conf:
    vi /etc/dracut.conf
  2. Нажмите i, чтобы войти в режим вставки, и добавьте драйверы VirtIO в add-drivers (формат зависит от ОС).
    [root@CTU10000xxxxx ~]# vi /etc/dracut.conf
    # additional kernel modules to the default
    add_drivers+= "ata_piix ata_generic virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
  3. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет изменения и выходит из файла /etc/dracut.conf.
  4. Выполните следующую команду, чтобы регенерировать initrd:
    dracut -f /boot/initramfs- filename

    If the virtual file system is not the default initramfs, run the dracut -f <actual-initramfs-or-initrd-filename> command. The actual initramfs or initrd file name can be obtained from the grub.cfg file, which can be /boot/grub/grub.cfg, /boot/grub2/grub.cfg, or /boot/grub/grub.conf depending on the OS.

  5. Если виртуальная файловая система — initramfs, выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:
    lsinitrd /boot/initramfs-`uname -r`.img | grep virtio

    Если виртуальная файловая система — initrd, выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:

    lsinitrd /boot/initrd-`uname -r` | grep virtio

SUSE and openSUSE (Later than SUSE 12 SP1 or openSUSE 13)

Измените файл /etc/dracut.conf.

Возьмём SUSE Linux Enterprise Server 12 SP2 (x86_64) в качестве примера.

  1. Выполните следующую команду, чтобы открыть файл /etc/dracut.conf:
    vi /etc/dracut.conf
  2. Нажмите i, чтобы войти в режим вставки, и добавьте драйверы VirtIO в add_drivers (формат зависит от ОС).
    [root@CTU10000xxxxx ~]# vi /etc/dracut.conf
    # additional kernel modules to the default
    add_drivers+=" ata_piix ata_generic virtio_blk virtio_scsi virtio_net virtio_pci virtio_ring virtio"
  3. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет изменения и выходит из файла /etc/dracut.conf.
  4. Выполните следующую команду для регенерации initrd:
    dracut -f /boot/initramfs- filename

    If the virtual file system is not the default initramfs, run the dracut -f <actual-initramfs-or-initrd-filename> command. The actual initramfs or initrd file name can be obtained from the grub.cfg file, which can be /boot/grub/grub.cfg, /boot/grub2/grub.cfg, or /boot/grub/grub.conf depending on the OS.

  5. Если виртуальная файловая система — initramfs, выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:
    lsinitrd /boot/initramfs-`uname -r`.img | grep virtio

    Если виртуальная файловая система — initrd, выполните следующую команду, чтобы проверить, установлены ли нативные драйверы KVM:

    lsinitrd /boot/initrd-`uname -r` | grep virtio

    Предположим, что виртуальная файловая система — initrd. Будет отображён следующий вывод команды:

    sluo-ecs-30dc:~ # lsinitrd /boot/initrd-`uname -r` | grep virtio
    -rw-r--r-- 1 root root 29335 Oct 26 2016 lib/modules/4.4.21-69-default/kernel/drivers/block/ virtio_blk.ko
    -rw-r--r-- 1 root root 57007 Oct 26 2016 lib/modules/4.4.21-69-default/kernel/drivers/net/ virtio_net.ko
    -rw-r--r-- 1 root root 32415 Oct 26 2016 lib/modules/4.4.21-69-default/kernel/drivers/scsi/ virtio_scsi.ko
    drwxr-xr-x 2 root root 0 Sep 28 10:21 lib/modules/4.4.21-69-default/kernel/drivers/virtio
    -rw-r--r-- 1 root root 19623 Oct 26 2016 lib/modules/4.4.21-69-default/kernel/drivers/virtio/ virtio.ko
    -rw-r--r-- 1 root root 38943 Oct 26 2016 lib/modules/4.4.21-69-default/kernel/drivers/virtio/ virtio_pci.ko
    -rw-r--r-- 1 root root 24431 Oct 26 2016 lib/modules/4.4.21-69-default/kernel/drivers/virtio/ virtio_ring.ko
    Note

    If you add built-in drivers to the initrd or initramfs file, the ECS will not be affected. This makes it easy to modify the drivers. However, you cannot check the drivers by running the lsinitrd command. You can run the following commands to check whether there are built-in drivers in the kernel:

    cat /boot/config-`uname -r` | grep CONFIG_VIRTIO | grep y

Последующие действия

Удалите файлы журналов, исторические записи и другие данные.

  1. Удалите ненужные ключевые файлы.
    echo > /$path/$to/$root /.ssh/authorized_keys
    Example: echo > /root/.ssh/authorized_keys
    echo > /$path/$to/$none-root /.ssh/authorized_keys
    Example: echo > /home/linux/.ssh/authorized_keys
  1. Delete log files from the /var/log directory.
    rm -rf /var/log/*
    Note

    Before deleting log files, back up log directories and log files required by application startup. For example, if the default Nginx log directory /var/log/nginx is deleted, Nginx may fail to be started.

  2. Delete historical records.
    echo > /root/.bash_history
    history -c