Advanced
Тема интерфейса

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

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

Сценарии

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

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

Требования

  • Файл образа был первоначально сконфигурирован согласно указаниям в Таблица 2 на основе ОС в файле образа.
  • Вы создали ECS с EulerOS в консоли управления и привязали EIP к ECS.
  • 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 PC, используйте инструмент передачи файлов, например WinSCP, чтобы загрузить файл образа.

  2. Получите инструмент конвертации образа ( qemu-img-hw.zip ) и инструмент создания bitmap‑файлов ( 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 конвертировать -p -O zvhd2 image01.qcow2 image01.zvhd2

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

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

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

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

      source /etc/profile

      java -version

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

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

      cd /usr/ createMF

    3. Выполните следующую команду для создания bitmap‑файла:

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

      Пример:

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

      Caution
      • Сгенерированный .mf bitmap‑файл должен иметь то же имя, что и RAW‑образ. Например, если имя образа image01.raw , имя сгенерированного bitmap‑файла image01.mf .

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

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

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

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

        yum установить python-setuptools

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

        yum установить 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 :

      s3cmd --configure
      Access Key: Enter an AK.
      Secret Key: Enter an SK.
      Default Region: Enter the region where the bucket is located.
      S3 Endpoint: Refer to the OBS endpoint.
      DNS-style bucket+hostname:port template for accessing a bucket: Enter a server address with a bucket name, for example, mybucket.obs.myclouds.com.
      Encryption password: Press Enter.
      Path to GPG program: Press Enter.
      Use HTTPS protocol: Specifies whether to use HTTPS. The value can be Yes or No.
      HTTP Proxy server name: Specifies the proxy address used to connect the cloud from an external network. (If you do not need it, press Enter.)
      HTTP Proxy server port: Specifies the proxy port used to connect to the cloud from an external network (If you do not need it, press Enter.)
      Test access with supplied credentials? y
      (If "Success. Your access key and secret key worked fine :-)" is displayed, the connection is successful.)
      Save settings? y (Specifies whether to save the configurations. If you enter y, the configuration will be saved.)
      Note

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

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

      s3cmd put image01.zvhd2 s3:// mybucket /

      Caution

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

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

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

    Метод 1: Зарегистрировать частный образ в консоли.

    1. Откройте консоль IMS.
      1. Войдите в консоль управления.
      2. Под Вычисления , нажмите Image Management Service .

        Консоль IMS отображена.

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

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

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

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

        qemu-img-hw info test.zvhd2

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

    API — POST /v2/cloudimages/quickimport/action.

    Подробную информацию о том, как вызывать этот API, смотрите в "Importing an Image File Quickly" Image Management Service API Reference.

Приложение 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 конвертировать -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: version `GLIBC_2.14' not found (required by ./qemu-img-hw)

    Решение:

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

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

    wget http://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: ошибка: приемлемый компилятор C не найден в $PATH отображается, запустите yum -y install gcc команду.

    make

    make install

  • Симптом:

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

    ./qemu-img-hw: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

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

  • Симптом:

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

    ./qemu-img-hu: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

    Решение: Запустите 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 файл, если он вам больше не нужен.