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

Быстрый импорт файла образа в Linux

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

Сценарии

В данном разделе описывается процедура преобразования формата большого файла образа на сервере Linux и последующего быстрого импорта этого файла на облачную платформу. Рекомендуется использовать ECS с операционной системой EulerOS для преобразования форматов файлов образов и генерации битовых карт.

В Linux рекомендуется использоватьqemu-img-hwдля преобразования форматов изображений.

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

  • Файл изображения был предварительно настроен согласно инструкциям вТаблица 2в зависимости от ОС в файле образа.
  • Вы создали ECS с установленной операционной системой EulerOS в консоли управления и привязали к нему EIP.
  • Бакет OBS создан в консоли управления.

Процедура

  1. Загрузите файл образа.

    • Если файл образа загружается с ПК под управлением Linux, выполните командуscp.

      Например, чтобы загрузитьimage01.qcow2в каталог/usr/ECS, выполните следующую команду:

      scp /var/image01.qcow2 root@xxx.xxx.xx.xxx:/usr/

      xxx.xxx.xx.xxxуказывает на EIP, связанный с ECS.

    • Если файл образа загружается с ПК под управлением Windows, используйте инструмент передачи файлов, например WinSCP, для загрузки файла образа.

  2. Получите инструменты для преобразования изображений (qemu-img-hw.zip) и создания битовой карты (createMF.zip), загрузите их на ECS и распакуйте архивы.

    Таблица 1 Инструментальные пакеты

    Пакет инструментов

    Как получить

    qemu-img-hw.zip

    createMF.zip

  3. Используйтеqemu-img-hwдля преобразования формата изображения.

    1. Перейдите в каталог, где хранитсяqemu-img-hwнапример,/usr/qemu-img-hw.

      cd /usr/qemu-img-hw

    2. Выполните следующую команду, чтобы сделатьqemu-img-hwисполняемым:

      chmod +x qemu-img-hw

    3. Запуститеqemu-img-hwдля преобразования формата файла образа в ZVHD2 (рекомендуется) или RAW.

      Формат команды:

      ./qemu-img-hw convert -p -O Target_image_format Source_image_file Target_image_file

      Например, выполните следующую команду для преобразования файлаimage01.qcow2в файлimage01.zvhd2

      ./qemu-img-hw convert -p -O zvhd2 image01.qcow2 image01.zvhd2

      • Если формат файла образа преобразован в ZVHD2, перейдите к пункту5.
      • Если формат файла образа преобразован в RAW, перейдите к пункту4.

  4. ИспользуйтеCreateMF.jarдля генерации битового файла.

    1. Убедитесь, что на ECS установлена JDK.

      Выполните следующие команды для проверки установки JDK:

      source /etc/profile

      java -version

      Если отображается версия Java, значит JDK установлен.

    2. Выполните следующую команду для перехода в каталог, где находитсяCreateMF.jar

      cd /usr/createMF

    3. Выполните следующую команду для генерации битового файла:

      java -jar CreateMF.jar /Original RAW file path/Generated .mf file path

      Пример:

      java -jar CreateMF.jar image01.raw image01.mf

      Caution
      • Имя сгенерированного битового файла (.mf) должно совпадать с префиксом имени файла RAW-изображения. Например, если имя файла изображения –image01.raw, то имя сгенерированного битового файла будетimage01.mf.

  5. Используйтеs3cmdдля загрузки файла(ов) в бакет OBS.

    1. Установитеs3cmdна ECS.

      Еслиs3cmdуже установлен, пропустите этот шаг.

      1. Выполните следующую команду для установки setuptools:

        yum install python-setuptools

      2. Выполните следующую команду для установки wget:

        yum install wget

      3. Выполните следующие команды для получения программного пакета s3cmd

        wget https://github.com/s3tools/s3cmd/archive/master.zip

        mv master.zip s3cmd-master.zip

      4. Выполните следующие команды для установки s3cmd

        unzip s3cmd-master.zip

        cd s3cmd-master

        python setup.py install

    2. Настройте s3cmd.

      Выполните следующую команду для настройки s3cmd

      s3cmds3cmd --configure--configure
      Access Key: Введите АК.
      Secret Key: Введите СК.
      Default Region: Укажите регион, где находится бакет.
      S3 Endpoint: См. эндпоинт OBS.
      DNS-style bucket+hostname:port template for accessing a bucket: Введите адрес сервера с именем бака, например, mybucket.obs.myclouds.com.
      Encryption password: Нажмите Enter.
      Path to GPG program: Нажмите Enter.
      Use HTTPS protocol: Указывает, следует ли использовать протокол HTTPS. Значение может быть Yes или No.
      HTTP Proxy server name: Задает прокси-адрес, используемый для подключения к облаку извне. (Если он вам не нужен, нажмите Enter.)
      HTTP Proxy server port: Задает прокси-порт, используемый для подключения к облаку извне (если он вам не нужен, нажмите Enter.)
      Test access with supplied credentials? y
      (Если отображается сообщение «Success. Your access key and secret key worked fine :-)», соединение успешно.)
      Save settings? y (Определяет, сохранять ли конфигурации. При вводе y конфигурация будет сохранена.)
      Note

      Конфигурации будут храниться в /root/.s3cfg. Чтобы изменить эти конфигурации, выполните команду s3cmd --configure для настройки параметров или выполните команду vi .s3cfg для редактирования файла .s3cfg.

    3. Выполните следующую команду для загрузки файла образа ZVHD2 (или файла изображения RAW и его файла битовой карты) в бакет OBS.

      s3cmd put image01.zvhd2 s3://mybucket/

      Caution

      Файл битовой карты формата .mf должен находиться в том же бакете OBS, что и файл изображения RAW.

  6. Зарегистрируйте частный образ.

    Вы можете зарегистрировать приватный образ, используя преобразованный файл ZVHD2 или RAW, через консоль или API.

    Метод 1: Регистрация частного образа через консоль.

    1. Войдите в консоль управления.
      1. Под Compute, щелкните Image Management Service. Откроется консоль IMS.
    2. В правом верхнем углу щелкните Создать образ.
    3. В области Тип и источник изображения, выберите Импортировать изображение для параметра Тип и затем выберите Системное дисковое изображение или Изображение диска данных для параметра Тип изображения.
    4. Выберите бакет, содержащий файл образа ZVHD2 или RAW, а затем выберите файл образа.
    5. Установите флажок Быстрое создание включено, и выберите предложение после Подготовка файлов изображений.
    6. Задайте параметры согласно подсказкам.

      Подробности о параметрах см. в разделе Регистрация файла изображения как приватного изображения.

      Caution
      • Используемая ОС должна совпадать с той, которая указана в файле образа.
      • Емкость системного диска должна быть больше указанной в файле образа.

        Выполните следующую команду для проверки емкости системного диска в файле образа:

        qemu-img-hw info test.zvhd2

    Метод 2: Регистрация частного образа с использованием API.

    API – это POST /v2/cloudimages/quickimport/action.

    Для подробностей об обращении к этому API см. раздел "Быстрый импорт файла изображения" в руководстве Справочник API службы управления изображениями.

Приложение 1: Общие команды qemu-img-hw

  • Преобразование форматов файлов образов: qemu-img-hw convert -p -O Target_image_format Source_image__file Target_image_file

    Параметры описаны следующим образом:

    -p: указывает на прогресс преобразования.

    Часть после-O(которая должна быть прописана заглавными буквами) состоит из формата целевого изображения, файла исходного изображения и файла целевого изображения.

    Например, выполните следующую команду для преобразования файла образа QCOW2 в файл ZVHD2:

    qemu-img-hw convert -p -O zvhd2 test.qcow2 test.zvhd2

  • Запрос информации о файле образа: qemu-img-hw info Файл исходного изображения

    Пример команды qemu-img-hw info test.zvhd2.

  • Просмотр справочной информации: qemu-img-hw -help

Приложение 2: Распространенные ошибки во время выполнения qemu-img-hw

  • Симптомы:

    При выполнении команды qemu-img-hw отображается следующая информация:

    ./qemu-img-hw: /lib64/libc.so.6: версия `GLIBC_2.14' не найдена (требуется для ./qemu-img-hw)

    Решение:

    Выполните команду strings /lib64/libc.so.6 | grep glibc чтобы проверить версию glibc. Если версия слишком ранняя, установите последнюю версию. Выполните указанные ниже команды последовательно:

    wget https://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz

    wget https://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz

    tar -xvf glibc-2.15.tar.gz

    tar -xvf glibc-ports-2.15.tar.gz

    mv glibc-ports-2.15 glibc-2.15/ports

    mkdir glibc-build-2.15

    cd glibc-build-2.15

    ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

    Note

    Если configure: error: no acceptable C compiler found in $PATH отображается, выполните команду yum -y install gcc.

    make

    make install

  • Симптомы:

    При выполнении команды qemu-img-hw отображается следующая информация:

    ./qemu-img-hw: ошибка при загрузке общих библиотек: libaio.so.1: невозможно открыть общий объектный файл: Нет такого файла или каталога

    Решение: сначала выполните команду yum install libaio.

  • Симптомы:

    При выполнении команды qemu-img-hw отображается следующая информация:

    ./qemu-img-hu: ошибка при загрузке общих библиотек: libcrypto.so.10: невозможно открыть общий объектный файл: Нет такого файла или каталога

    Решение: выполните команду openssl version чтобы проверить, является ли версия OpenSSL более поздней, чем 1.0. Если да, то установите OpenSSL версии 1.0.

    Для установки OpenSSL версии 1.0 выполните следующие команды:

    wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2k/openssl-1.0.2k.tar.gz

    tar -xvf openssl-1.0.2k.tar.gz

    cd openssl-1.0.2k

    ./config -d shared --prefix=/tmp/openssl (каталог пользовательской установки)

    make

    make install

    cp /tmp/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10

    Удалите файл /usr/lib64/libcrypto.so.10 если он больше не нужен.