В данном разделе описывается процедура преобразования формата большого файла образа на сервере Linux и последующего быстрого импорта этого файла на облачную платформу. Рекомендуется использовать ECS с операционной системой EulerOS для преобразования форматов файлов образов и генерации битовых карт.
В Linux рекомендуется использоватьqemu-img-hwдля преобразования форматов изображений.
Например, чтобы загрузитьimage01.qcow2в каталог/usr/ECS, выполните следующую команду:
scp /var/image01.qcow2 root@xxx.xxx.xx.xxx:/usr/
xxx.xxx.xx.xxxуказывает на EIP, связанный с ECS.
Пакет инструментов | Как получить |
|---|---|
qemu-img-hw.zip | |
createMF.zip |
cd /usr/qemu-img-hw
chmod +x qemu-img-hw
Формат команды:
./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
Выполните следующие команды для проверки установки JDK:
source /etc/profile
java -version
Если отображается версия Java, значит JDK установлен.
cd /usr/createMF
java -jar CreateMF.jar /Original RAW file path/Generated .mf file path
Пример:
java -jar CreateMF.jar image01.raw image01.mf
Еслиs3cmdуже установлен, пропустите этот шаг.
yum install python-setuptools
yum install wget
wget https://github.com/s3tools/s3cmd/archive/master.zip
mv master.zip s3cmd-master.zip
unzip s3cmd-master.zip
cd s3cmd-master
python setup.py install
Выполните следующую команду для настройки s3cmd
s3cmds3cmd --configure--configureAccess 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 конфигурация будет сохранена.)
Конфигурации будут храниться в /root/.s3cfg. Чтобы изменить эти конфигурации, выполните команду s3cmd --configure для настройки параметров или выполните команду vi .s3cfg для редактирования файла .s3cfg.
s3cmd put image01.zvhd2 s3://mybucket/
Файл битовой карты формата .mf должен находиться в том же бакете OBS, что и файл изображения RAW.
Вы можете зарегистрировать приватный образ, используя преобразованный файл ZVHD2 или RAW, через консоль или API.
Метод 1: Регистрация частного образа через консоль.
Подробности о параметрах см. в разделе Регистрация файла изображения как приватного изображения.
Выполните следующую команду для проверки емкости системного диска в файле образа:
qemu-img-hw info test.zvhd2
Метод 2: Регистрация частного образа с использованием API.
API – это POST /v2/cloudimages/quickimport/action.
Для подробностей об обращении к этому API см. раздел "Быстрый импорт файла изображения" в руководстве Справочник API службы управления изображениями.
Параметры описаны следующим образом:
-p: указывает на прогресс преобразования.
Часть после-O(которая должна быть прописана заглавными буквами) состоит из формата целевого изображения, файла исходного изображения и файла целевого изображения.
Например, выполните следующую команду для преобразования файла образа QCOW2 в файл ZVHD2:
qemu-img-hw convert -p -O zvhd2 test.qcow2 test.zvhd2
Пример команды qemu-img-hw info test.zvhd2.
При выполнении команды 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
Если 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 если он больше не нужен.