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

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

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

Сценарии

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

Caution

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

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

  • На ECS не установлены родные драйверы KVM.
    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 and 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 and 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. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет изменения и выходит из файла /etc/initramfs-tools/modules.
  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)

Modify the /etc/dracut.conf file.

  1. Run the following command to open the /etc/dracut.conf file:
    vi /etc/dracut.conf
  2. Press i to enter insert mode and add VirtIO drivers to add-drivers (the format varies depending on the OS).
    [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. Press Esc, enter :wq, and press Enter. The system saves the change and exits the /etc/dracut.conf file.
  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)

Modify the /etc/dracut.conf file.

Возьмите 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

    Если виртуальная файловая система не является initramfs по умолчанию, выполните команду dracut -f \u003cactual-initramfs-or-initrd-filename\u003e. Фактическое имя файла initramfs или initrd можно получить из файла grub.cfg, который может находиться по пути /boot/grub/grub.cfg, /boot/grub2/grub.cfg или /boot/grub/grub.conf в зависимости от ОС.

  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

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

    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. Удалите файлы журналов из каталога /var/log.
    rm -rf /var/log/*
    Note

    Перед удалением файлов журналов сделайте резервную копию каталогов журналов и файлов журналов, необходимых для запуска приложения. Например, если удалить каталог журналов Nginx по умолчанию /var/log/nginx, Nginx может не запуститься.

  2. Удалить исторические записи.
    echo > /root/.bash_history
    history -c