操作場景
如果外部鏡像文件大小大于128GB,可以使用快速導入鏡像文件功能進行導入。
約束與限制
- 快速導入鏡像文件功能僅支持raw和zvhd2格式鏡像文件。
- 若鏡像文件格式為raw和zvhd2以外的格式,可以使用qemu-img-ctc工具轉換鏡像格式。
- 鏡像文件大小不能超過1TB。
導入方案
請根據您的鏡像文件格式來選擇合適的導入方案:
- 若文件格式為 zvhd2 ,則導入方案為:鏡像文件優化> 上傳至OBS桶 > 在云平臺注冊
- 若文件格式為 raw ,則導入方案為:鏡像文件優化> 生成鏡像文件的位表文件 > 將鏡像文件和位表文件一同上傳至OBS桶 > 在云平臺注冊
- 若文件為zvhd2和raw以外的格式,導入時區分以下兩種情況:
- 鏡像文件優化> 轉換鏡像文件格式為zvhd2 > 將鏡像文件上傳至OBS桶 > 在云平臺注冊
- 鏡像文件優化> 轉換鏡像文件格式為raw,并生成鏡像文件的位表文件 > 將鏡像文件和位表文件一同上傳至OBS桶 > 在云平臺注冊
說明快速導入也稱大文件導入。大文件在導入時依賴延遲加載特性,zvhd2格式已支持該特性;raw格式不支持,需要依賴位表文件,因此在上傳時,需要連同位表文件一起上傳。
鏡像文件優化的指導參考:優化私有鏡像(Windows)或者優化私有鏡像(Linux),根據鏡像文件的操作系統類型來選擇。
資源和成本規劃
| 資源 | 資源說明 | 成本說明 |
|---|---|---|
| qemu-img | 是一款開源的轉換鏡像格式的工具。獲取方式: | 免費 |
| qemu-img-ctc | 是一款基于開源工具qemu-img 2.3.0版本做的鏡像格式轉換工具。獲取方式: | 免費 |
| CreateMF.jar | 是一款生成位表文件的工具。獲取方式: | 免費 |
導入流程
本節以外部鏡像文件格式為zvhd2和raw以外的場景為例,介紹基于Linux和Windows操作系統環境的完整導入流程。
轉換鏡像格式時,Linux操作系統可以使用qemu-img-ctc,也可以使用開源工具qemu-img,Windows操作系統僅可使用開源工具qemu-img。
說明快速導入工具中包含三個子工具,分別實現兩項功能:qemu-img-ctc / qemu-img(鏡像格式轉換)、CreateMF.jar(生成位表文件)。
- 基于Linux操作系統環境
推薦使用云平臺的HCE服務器作為操作的環境,流程如下圖所示。
詳細操作請參見快速導入鏡像文件(基于Linux環境)。
- 基于Windows操作系統環境
推薦使用Windows系統本地PC作為操作的環境,流程如下圖所示。
說明開源鏡像轉換工具qemu-img不支持將鏡像文件轉換為zvhd2格式,因此需要轉換為raw格式,再使用CreateMF.jar生成位表文件。
詳細操作請參見快速導入鏡像文件(基于Windows環境)。
快速導入鏡像文件(基于Linux環境)
操作場景
本節指導您基于Linux操作系統環境完成鏡像文件快速導入,推薦使用云平臺的HCE云服務器作為轉換鏡像格式和生成位表文件的環境。
Linux操作系統環境下,建議使用qemu-img-ctc工具進行鏡像格式轉換。
前提條件
- 已完成鏡像文件優化,詳細操作請參考優化私有鏡像(Windows)或優化私有鏡像(Linux);同時需要確保鏡像文件符合Linux 操作系統的鏡像文件限制中的限制條件。
說明請根據鏡像文件的操作系統類型來選擇所參考內容。
- 已在管理控制臺創建HCE操作系統的彈性云服務器,并確保云服務器已綁定彈性公網IP。
- 已在管理控制臺創建OBS桶。
操作步驟
-
上傳鏡像文件至云服務器。
- 本地主機為Linux系統:
通過scp命令將鏡像文件上傳至云服務器。以將“image01.qcow2”文件上傳至云服務器的“/usr/”目錄下為例。
scp /var/image01.qcow2 root@xxx.xxx.xx.xxx:/usr/
其中,xxx.xxx.xx.xxx為云服務器的彈性公網IP。 - 本地主機為Windows系統:
使用文件傳輸工具(例如WinSCP)將鏡像文件上傳至云服務器。
- 本地主機為Linux系統:
-
獲取鏡像轉換工具(qemu-img-ctc.rar)和位表文件生成工具(CreateMF.zip),并上傳至云服務器,然后解壓工具包。
-
使用qemu-img-ctc工具轉換鏡像格式。
- 進入qemu-img-ctc存放目錄,以存放在“/usr/qemu-img-ctc”為例:
cd /usr/qemu-img-ctc - 執行以下命令修改權限:
chmod +x qemu-img-ctc - 執行qemu-img-ctc命令將鏡像文件轉為zvhd2或raw格式(推薦轉為zvhd2格式)。
qemu-img-ctc命令格式:
./qemu-img-ctc convert -p -O {目標鏡像格式} {待轉換鏡像文件} {目標鏡像文件}
以將“image01.qcow2”格式文件轉換成“image01.zvhd2”格式為例:
./qemu-img-ctc convert -p -O zvhd2 image01.qcow2 image01.zvhd2
若轉換后為zvhd2格式文件,請執行步驟5。
若轉換后為raw格式文件,請使用CreateMF.jar工具,生成raw格式鏡像文件的位表文件。請執行步驟4。
- 進入qemu-img-ctc存放目錄,以存放在“/usr/qemu-img-ctc”為例:
-
使用CreateMF.jar工具生成位表文件。
- 請確保當前云服務器已安裝jdk。
執行以下命令查看是否已安裝jdk:
source /etc/profile
java -version
如果回顯信息中顯示java版本信息,證明當前云服務器已安裝jdk。 - 執行以下命令進入CreateMF.jar程序所在的目錄。
cd /usr/CreateMF - 執行以下命令生成位表文件。
java -jar CreateMF.jar /原raw文件路徑 /生成的mf文件路徑
例如:
java -jar CreateMF.jar image01.raw image01.mf
- 請確保當前云服務器已安裝jdk。
-
使用s3cmd工具上傳文件至OBS桶。
-
安裝s3cmd工具。
若云服務器已安裝該工具可跳過此步驟,直接按照步驟b配置s3cmd:- 執行以下命令,安裝setuptools。
yum install python-setuptools - 執行以下命令,安裝wget。
yum install wget - 執行以下命令,獲取s3cmd軟件包。
wget //github.com/s3tools/s3cmd/archive/master.zip
mv master.zip s3cmd-master.zip - 執行以下命令,安裝s3cmd。
unzip s3cmd-master.zip
cd s3cmd-master
python setup.py install
- 執行以下命令,安裝setuptools。
-
配置s3cmd工具。
執行以下命令配置s3cmd工具。s3cmd --configure Access Key: 輸入AK Secret Key: 輸入SK Default Region: 輸入所在Region S3 Endpoint: 可參考OBS的Endpoint DNS-style bucket+hostname:port template for accessing a bucket: 輸入帶桶名的Server地址,例如mybucket.obs.myclouds.com Encryption password: 不填,直接按回車 Path to GPG program: 不填,直接按回車 Use HTTPS protocol: 是否使用HTTPS,Yes/No HTTP Proxy server name: 代理地址,連接云平臺需要連外網(如不需要直接回車) HTTP Proxy server port: 代理端口,連接云平臺需要連外網(如不需要直接回車) Test access with supplied credentials? y (如果顯示:Success. Your access key and secret key worked fine :-) 則表示連接成功) Save settings? y(是否保存配置)說明配置完成后,信息會保存在用戶目錄下“/root/.s3cfg”,如果還想修改,可以重新執行s3cmd --configure命令,或者直接編輯.s3cfg文件(執行vi .s3cfg命令進行編輯)。
-
使用s3cmd命令上傳zvhd2格式鏡像文件到OBS桶,或者上傳raw格式鏡像文件及其位表文件到OBS桶。
s3cmd put image01.zvhd2 s3://mybucket/注意.mf位表文件必須和其對應的raw格式鏡像文件在同一個OBS桶中。
-
-
注冊私有鏡像。
您可以通過控制臺方式、API接口方式,將轉換后的zvhd2或raw文件注冊為私有鏡像。方法一:通過控制臺創建私有鏡像
-
登錄IMS控制臺。
- 登錄管理控制臺。
- 選擇“計算 > 鏡像服務”。
進入鏡像服務頁面。
-
單擊右上角的“創建私有鏡像”。
-
在“創建方式”區域,選擇鏡像的創建方式為“導入私有鏡像”。
-
在“鏡像類型”區域,選擇鏡像類型為“系統盤鏡像”或“數據盤鏡像”。
-
在“選擇鏡像文件”區域,從列表中選擇存放轉換后zvhd2或raw格式鏡像文件的桶,再選擇轉換后的鏡像文件。如果是raw格式鏡像文件,需要確保同名位表文件已上傳。
-
勾選快速通道欄的“開啟快速通道”,并確認已優化鏡像文件,然后勾選“鏡像文件準備”欄的內容。
-
根據界面提示填寫配置信息。
具體的配置參數說明,請參見通過外部鏡像文件創建Linux系統盤鏡像。注意操作系統必須要和鏡像文件所含的操作系統一致。
系統盤大小必須大于鏡像文件的大小。
通過qemu-img-ctc工具可查詢鏡像文件大小:qemu-img-ctc info test.zvhd2
方法二:通過API方式創建私有鏡像
您可以通過接口POST /v2/cloudimages/quickimport/action,實現鏡像文件快速導入功能。
-
附錄1:qemu-img-ctc常用命令
- 鏡像文件格式轉換:qemu-img-ctc convert -p -O {目標鏡像格式} {待轉換鏡像文件} {目標鏡像文件}
上述命令中各參數對應的說明如下:
-p:標識轉換的進度條
-O:(必須是大寫)后面的參數為轉換出來的鏡像格式 + 源鏡像文件名稱 + 目標鏡像文件名稱
示例:將qcow2格式轉為zvhd2格式
qemu-img-ctc convert -p -O zvhd2 test.qcow2 test.zvhd2 - 查詢鏡像文件信息:qemu-img-ctc info {鏡像文件}
示例:qemu-img-ctc info test.zvhd2 - 查看幫助:qemu-img-ctc -help
附錄2:執行qemu-img-ctc常見報錯
- 問題描述:
執行qemu-img-ctc命令時回顯信息如下:
解決方法:
執行strings /lib64/libc.so.6 | grep GLIBC查看GLIBC版本,若由于版本過低造成,可安裝高版本即可。依次執行下述命令:
wget //ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
wget //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
make
make install
說明../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
-
問題描述:
執行qemu-img-ctc命令時回顯信息如下:./qemu-img-ctc: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory解決方法:請先執行命令yum install libaio
快速導入鏡像文件(基于Windows環境)
操作場景
本節指導您基于Windows操作系統環境完成鏡像文件快速導入,推薦使用Windows系統本地PC作為轉換鏡像格式和生成位表文件的環境。
Windows操作系統環境下,必須使用開源qemu-img工具進行鏡像格式轉換,qemu-img支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed格式的鏡像的相互轉換,因此需要轉換為raw格式,再使用CreateMF.jar工具生成位表文件。
前提條件
- 已完成鏡像文件優化,詳細操作請參考優化私有鏡像(Windows)或優化私有鏡像(Linux);同時需要確保鏡像文件符合Windows操作系統的鏡像文件限制中的限制條件。
說明根據鏡像文件的操作系統類型來選擇所參考內容。
- 已在管理控制臺創建OBS桶,并下載OBS Browser+工具。
操作步驟
-
安裝開源鏡像轉換工具qemu-img。
-
通過cmd命令進入qemu-img安裝目錄,執行qemu-img命令將鏡像文件轉換為raw格式。
以將“image.qcow2”格式文件轉換成“image.raw”格式為例:
qemu-img convert -p -O raw image.qcow2 image.raw -
使用CreateMF.jar工具生成位表文件。
- 獲取工具并解壓。
請聯系管理員獲取工具。 - 請確保當前環境已安裝jdk。
可通過CreateMF如下方法驗證:
打開cmd.exe,執行java -version,若顯示java版本信息,證明已安裝jdk。 - 進入.jar程序所在的路徑。
以將CreateMF.jar程序下載到“D:/test”目錄為例,執行以下命令進入CreateMF.jar程序所在的路徑:
D:
cd test - 執行以下命令,生成raw格式鏡像文件對應的位表文件。
java -jar CreateMF.jar D:/image01.raw D:/image01.mf
注意生成的.mf位表文件和raw格式鏡像文件必須是相同名稱。例如鏡像文件名稱為:image01.raw,那么生成的位表文件名稱為:image01.mf。
- 獲取工具并解壓。
-
使用OBS Browser+工具上傳文件至OBS桶。
必須將raw格式鏡像文件及其位表文件上傳至同一OBS桶。 -
注冊私有鏡像。
您可以通過控制臺方式、API接口方式,將轉換后的zvhd2或raw文件注冊為私有鏡像。方法一:通過控制臺創建私有鏡像
-
登錄IMS控制臺。
- 登錄管理控制臺。
- 選擇“計算 > 鏡像服務”。
進入鏡像服務頁面。
-
單擊右上角的“創建私有鏡像”。
-
在“創建方式”區域,選擇鏡像的創建方式為“導入私有鏡像”。
-
在“鏡像類型”區域,選擇鏡像類型為“系統盤鏡像”或“數據盤鏡像”。
-
鏡像源選擇“鏡像文件”,從列表中選擇轉換為zvhd2或raw文件的桶,再選擇轉換后的鏡像文件。如果是raw格式鏡像文件,需要確保同名位表文件已上傳。
-
勾選快速通道欄的“開啟快速通道”,并確認已優化鏡像文件,然后勾選“鏡像文件準備”欄的內容。
-
根據界面提示填寫配置信息。
具體的配置參數說明,請參見通過外部鏡像文件創建Windows系統盤鏡像。
注意操作系統必須要和鏡像文件所含的操作系統一致。
系統盤大小必須大于鏡像文件的大小。
通過qemu-img-ctc工具可查詢鏡像文件大小:
qemu-img-ctc info test.zvhd2
方法二:通過API方式創建私有鏡像
您可以通過接口POST /v2/cloudimages/quickimport/action,實現鏡像文件快速導入功能。
-