Облачная платформа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.

Процедура

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

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

OS

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

Ссылка

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 опять.

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 опять.

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 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 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 опять.

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

    Если виртуальная файловая система не является initramfs по умолчанию, выполните dracut -f Имя фактически используемого initramfs или initrd файла команда. Фактическое имя 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

    Предположим, что виртуальная файловая система — 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

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

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

Ubuntu and Debian

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

    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. Выполните следующую команду для проверки, установлены ли native 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

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

    [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)

Измените /etc/sysconfig/kernel файл.

  1. Выполните следующую команду, чтобы изменить /etc/sysconfig/kernel файл:

    vi /etc/sysconfig/kernel

  2. Добавьте драйверы VirtIO в INITRD_MODULES="" (формат драйверов зависит от 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. Выполните mkinitrd команду для создания initrd снова.
    Note

    Если виртуальная файловая система не является initramfs или initrd по умолчанию, выполните dracut -f Имя фактически используемого файла initramfs или initrd command. Фактическое имя файла initramfs или initrd можно получить из menu.lst или grub.cfg файл (/boot/grub/menu.lst, /boot/grub/grub.cfg, или /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 в initrd строка является initrd файл, фактически используемый. Запустите dracut -f /boot/initrd.vmx command. Если initrd файл не содержит /boot каталог, например /initramfs-xxx, выполните 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 command. Вы можете выполнить следующую команду, чтобы проверить, являются ли драйверы встроенными в ядре:

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

SUSE и 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-Имя файла

    Если виртуальная файловая система не является initramfs по умолчанию, выполните dracut -f Имя фактически используемого initramfs или initrd файла команда. Фактическое имя 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

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-Имя файла

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

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

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

    Если виртуальная файловая система — initrd, выполните следующую команду, чтобы проверить, установлены ли драйверы native 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

    Пример: echo > /root/.ssh/authorized_keys

    echo > /$path/$to/$none-root/.ssh/authorized_keys

    Пример: 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