В этом разделе описывается, как конвертировать формат большого файла образа на сервере Linux, а затем быстро импортировать его в облачную платформу. Рекомендуется использовать EulerOS ECS для конвертации форматов файлов образов и генерации bitmap-файлов.
В 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 конвертировать -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 установить python-setuptools
yum установить 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:
s3cmd --configureAccess 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.)
Конфигурации будут сохранены в /root/.s3cfg. Если вы хотите изменить эти конфигурации, выполните s3cmd --configure команда для настройки параметров или запуска vi .s3cfg команда для редактирования .s3cfg файл.
s3cmd put image01.zvhd2 s3://mybucket/
Файл bitmap .mf должен находиться в том же OBS бакете, что и RAW‑образ.
Вы можете зарегистрировать частный образ, используя преобразованный файл ZVHD2 или RAW в консоли или через API.
Метод 1: Зарегистрировать частный образ в консоли.
Консоль IMS отображена.
Подробную информацию о параметрах см Регистрация файла образа в качестве частного образа.
Выполните следующую команду, чтобы проверить объём системного диска в файле образа:
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.
Параметры описаны следующим образом:
-p: указывает прогресс конвертации.
Часть, следующая -O (которые должны быть в верхнем регистре) состоит из формата целевого образа, исходного файла образа и целевого файла образа.
Например, выполните следующую команду для конвертации файла образа QCOW2 в файл ZVHD2:
qemu-img-hw конвертировать -p -O zvhd2 test.qcow2 test.zvhd2
Пример команды qemu-img-hw info test.zvhd2.
Следующая информация отображается при запуске 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
Если 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 файл, если он вам больше не нужен.