В этом разделе описывается, как преобразовать формат большого образа файла на сервере 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 | https://ecs-instance-driver.obs.ru-moscow-1.hc.sbercloud.ru/qemu-img-hw.zip |
createMF.zip | https://ecs-instance-driver.obs.ru-moscow-1.hc.sbercloud.ru/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 /\u003coriginal-RAW-file-path\u003e/\u003cgenerated-.mf-file-path\u003e
Пример:
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:
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: Зарегистрировать частный образ в консоли.
Для получения подробной информации о параметрах см. Registering an Image File as a Private Image.
Выполните следующую команду, чтобы проверить ёмкость системного диска в файле образа:
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.
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 {image-file}
Пример:
qemu-img-hw info test.zvhd2
qemu-img-hw -help
Следующая информация отображается при выполнении команды qemu-img-hw:
Решение:
Выполните команду strings /lib64/libc.so.6 | grep GLIBC для проверки версии GLIBC. Если версия слишком ранняя, установите последнюю версию. Выполните следующие команды последовательно:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gzwget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gztar -xvf glibc-2.15.tar.gztar -xvf glibc-ports-2.15.tar.gzmv glibc-ports-2.15 glibc-2.15/portsmkdir glibc-build-2.15cd 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.
makemake 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-hw: 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.gztar -xvf openssl-1.0.2k.tar.gzcd openssl-1.0.2k./config -d shared --prefix=/tmp/openssl (custom installation directory)makemake installcp /tmp/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
Удалите файл /usr/lib64/libcrypto.so.10, если он больше не нужен.