
# 对ECS实例大于1TiB的磁盘制作镜像文件并导出
#### 应用场景
通过IMS管理控制台导出镜像时，仅支持1TiB以内大小的磁盘制作镜像后导出，对于超过1TiB，则需要用户手动制作镜像文件并上传到obs桶。本文档指导用户对ECS实例上大于1TiB的磁盘，制作镜像文件并导出。
#### 资源和成本规划
表1资源和成本规划 
| 资源                | 资源说明                                                                                                                                                                                                                                                                                                                                                                              | 成本说明               |
|:---|:---|:---|
| Linux系统的ECS实例（1个） | 用于挂载需要制作镜像的磁盘，以及执行制作镜像文件的命令。                                                                                                                                                                                                                                                                                                                                                      | 具体费用信息请以控制台实际显示为准。 |
| 磁盘快照（1个）          | 为保证业务正常运行，需要为导出的目标磁盘创建磁盘快照，并基于快照创建新的磁盘用于制作镜像文件。                                                                                                                                                                                                                                                                                                                                   | 具体费用信息请以控制台实际显示为准。 |
| 磁盘（2个）            | - 基于快照创建一块备份磁盘，磁盘名称为volume-data，用于制作镜像文件。  - 将基于磁盘快照创建的volume-data新磁盘挂载至新创建ECS实例上后，再为ECS实例新增一块空白磁盘，磁盘名称为volume-export，磁盘大小与原始磁盘大小一致，用于存放最终生成的镜像文件。 说明： 此处磁盘名称仅作示例使用，磁盘名称可自定义设置，不影响操作流程。    | 具体费用信息请以控制台实际显示为准。 |
| EIP（1个）           | 用于访问公网，下载以及安装qemu-img工具和obsutil工具。                                                                                                                                                                                                                                                                                                                                                | 具体费用信息请以控制台实际显示为准。 |
| OBS桶（1个）          | 用于存放最终生成的镜像文件。                                                                                                                                                                                                                                                                                                                                                                    | 具体费用信息请以控制台实际显示为准。 |
| qemu-img          | 制作镜像文件的开源工具。                                                                                                                                                                                                                                                                                                                                                                      | 免费                 |
| obsutil           | 将文件上传到obs桶的工具。                                                                                                                                                                                                                                                                                                                                                                    | 免费                 |
   
![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
镜像文件上传完成后，请及时删除新创建的ECS实例、磁盘快照、新建磁盘以及EIP资源，避免资源闲置产生额外费用。
#### 前提条件
- 已获取当前账号的临时AK、SK和SecurityToken用于上传镜像文件到obs桶。如何获取临时AK、SK和SecurityToken请参见[IAM开发指导文档](https://support.huaweicloud.com/api-iam/iam_04_0002.html)。
- 已创建obs桶用来存放镜像文件。如何创建obs桶，请参见[创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html)。
 
#### 操作流程
本文以导出ECS实例上的数据盘为例，具体流程如下图所示：
![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
- 对于系统盘或数据盘均支持制作镜像后导出。
- 对于整机镜像，请先[通过整机镜像创建ECS实例](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7003.html#section4)后，再按本文档指导导出ECS上的磁盘。
 
图1操作流程   
![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611843525.png "点击放大")
1. 为要导出的目标磁盘创建磁盘快照。如何创建磁盘快照，具体操作请参见[步骤一：为要导出的目标磁盘创建磁盘快照]。
2. 基于目标磁盘的快照创建一个名称为volume-data的新磁盘。如何使用快照创建磁盘，具体操作请参见[步骤二：基于目标磁盘的快照创建名称为volume-data的新磁盘]。
3. 新建ECS实例并安装qemu-img工具和obsutil工具，具体操作请参见[步骤三：新建ECS实例并安装qemu-img工具和obsutil工具]。
4. 将[2]中基于磁盘快照创建的volume-data新磁盘挂载至新创建的ECS实例上，具体操作请参见[步骤四：将基于磁盘快照创建的volume-data新磁盘挂载至新创建的ECS实例上]。
5. 给新创建的ECS实例新增磁盘名称为volume-export的空白磁盘并初始化磁盘，具体操作请参见[步骤五：为ECS实例新增volume-export磁盘并初始化磁盘]。
6. 制作镜像文件，具体操作请参见[步骤六：制作镜像文件]。
7. 上传镜像文件至obs桶，具体操作请参见[步骤七：上传镜像文件至obs桶]。
 
 #### 步骤一：为要导出的目标磁盘创建磁盘快照
![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/notice_3.0-zh-cn.png)
为了保证业务正常运行，强烈建议您给要导出的目标磁盘创建快照，并基于快照创建新的磁盘用以制作镜像文件。
1. 登录[ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)。
2. 单击目标ECS实例名称，进入ECS详情页。
3. 单击"磁盘"页签，为要导出的目标磁盘创建快照。 ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611595673.png "点击放大")
   
4. 确认快照配置信息，单击"立即创建"。 ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611678283.png "点击放大")
   
 
 #### 步骤二：基于目标磁盘的快照创建名称为volume-data的新磁盘
使用快照可以创建一个有数据的磁盘，新磁盘的数据与该快照的数据是完全一样的。
1. 登录[EVS控制台](https://console.huaweicloud.com/ecm/?#/evs/manager/volumelist)。
2. 在左侧导航栏，选择"云硬盘 \> 快照"。 进入"快照"页面。
   
3. 在快照列表中，找到指定快照并单击快照所在行的"操作"列下的"创建磁盘"。 ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002581225802.png "点击放大")
   
4. 设置云硬盘参数。 计费模式：按需计费。
   磁盘名称：设置名称为"volume-data"。
   ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
   此处磁盘名称仅作示例使用，磁盘名称可自定义设置，不影响操作流程。
   其他各项参数设置，请参见[购买云硬盘](https://support.huaweicloud.com/usermanual-evs/zh-cn_topic_0021738346.html)中的参数说明和操作。
   
5. 单击"立即购买"。
6. 返回"云硬盘"主页面，查看云硬盘状态。待云硬盘状态变为"可用"时，表示创建成功。
 
 #### 步骤三：新建ECS实例并安装qemu-img工具和obsutil工具
1. 购买ECS实例。
   1. 进入[购买弹性云服务器](https://console.huaweicloud.com/ecm/?#/ecs/createVm)页面，在购买页左上角，选择"自定义购买"页签。
   
   2. 设置ECS购买参数。
      - 计费模式：选择"按需计费"模式，可以随时开通，随时删除。资源使用完建议及时删除，避免资源闲置产生额外费用。
      
      - 规格：x86架构类型的ECS。
      
      - 镜像：选择Linux操作系统的镜像（以CentOS 8.2版本为例）。
      
      - 弹性公网IP：为ECS绑定弹性公网IP。用于访问公网，下载以及安装qemu-img工具和obsutil工具。
      
      
      其他ECS购买参数请您根据业务需求完成设置，参数设置，请参见[自定义购买ECS](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)。
      
   
   3. 确认配置并购买ECS。 单击"返回云服务器列表"，您可以在[弹性云服务器列表页](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)查看到购买成功的ECS。
      
    
2. 使用VNC方式登录Linux弹性云服务器。
   1. 选择要登录的弹性云服务器，单击"操作"列下的"远程登录"。
   
   2. 在弹出的"登录Linux弹性云服务器"窗口中，选择"其他登录方式"下的"VNC登录"，单击"立即登录"。
   
   3. 根据界面提示，输入弹性云服务器密码。如果出现"Welcome to Huawei Cloud Service"，表示成功登录云服务器。
    
3. 安装qemu-img工具。
   1. CentOS系列操作系统，请执行如下命令，其他Linux操作系统请参考[本地为Linux操作系统](https://support.huaweicloud.com/bestpractice-ims/ims_bp_0030.html#ims_bp_0030__zh-cn_topic_0117262219_section87611435163413)安装qemu-img工具步骤指导。
      ```
      yum install -y qemu-img
      ```
      
   
   2. 执行如下命令，验证是否安装成功。
      ```
      qemu-img -V
      ```
      如回显信息中出现qemu-img工具的版本信息和帮助手册，即表示安装成功。以CentOS 8.2为例，回显信息如下所示：
      ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002581609540.png "点击放大")
      
    
4. 安装obsutil工具。
   1. 执行wget命令下载obsutil工具。
      ```
      wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
      ```
      
   
   2. 执行以下解压命令。
      ```
      tar -xzvf obsutil_linux_amd64.tar.gz
      ```
      
   
   3. 列举obsutil目录。"x.x.x"表示obsutil的版本号。
      ```
      ll  dr-x------ 2 root root    4096 Jan  5  2024 obsutil_linux_amd64_x.x.x -rw------- 1 root root 3845484 Mar 27 17:05 obsutil_linux_amd64.tar.gz
      ```
      
   
   4. 进入obsutil所在目录。"x.x.x"表示obsutil的版本号。
      ```
      cd obsutil_linux_amd64_x.x.x
      ```
      
   
   5. 执行以下命令，为obsutil增加可执行权限。
      ```
      chmod 755 obsutil
      ```
      ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
      您必须为obsutil增加可执行权限，否则会在查询obsutil版本号时出现No such file or directory报错。
      
   
   6. 继续在目录中执行以下命令，如果能顺利返回obsutil版本号，说明安装成功。
      ```
      ./obsutil version  obsutil version:5.7.9, obssdk version:3.24.12 operating system:linux, arch:amd64
      ```
      
    
 
 #### 步骤四：将基于磁盘快照创建的volume-data新磁盘挂载至新创建的ECS实例上
1. 登录[ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)，进入弹性云服务器列表页面。
2. 单击待挂载云硬盘的弹性云服务器的名称。系统跳转至该弹性云服务器详情页面。
3. 选择"磁盘"页签，并单击"挂载磁盘"。系统跳转至"挂载磁盘"页面。
4. 根据界面提示，勾选目标磁盘（磁盘名称为volume-data），并指定该磁盘作为数据盘。
5. 单击"确定"。挂载成功后，在弹性云服务器详情页的"云硬盘"页签，即可看到新挂载的磁盘信息。 ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002610449201.png "点击放大")
   
 
 #### 步骤五：为ECS实例新增volume-export磁盘并初始化磁盘
为ECS新实例新增一块空磁盘，磁盘名称为volume-export，磁盘大小与原始磁盘大小一致，用于存放最终生成的镜像文件。
1. 新增volume-export磁盘。
   1. 登录[ECS控制台](https://console.huaweicloud.com/ecm/?#/ecs/manager/vmList)，进入弹性云服务器列表页面。
   
   2. 单击目标弹性云服务器的名称。系统跳转至该弹性云服务器详情页面。
   
   3. 选择"磁盘"页签，并单击"新增磁盘"。系统跳转至云硬盘购买页。
   
   4. 设置云硬盘参数。 计费模式：按需计费。
      磁盘大小：与原始要导出的磁盘大小一致。
      磁盘名称：设置名称为"volume-export"。
      ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
      此处磁盘名称仅作示例使用，磁盘名称可自定义设置，不影响操作流程。
      其他各项参数设置，请参见[购买云硬盘](https://support.huaweicloud.com/usermanual-evs/zh-cn_topic_0021738346.html)中的参数说明和操作。
      
   
   5. 单击"立即购买"。
   
   6. 返回"云硬盘"主页面，查看云硬盘状态。待云硬盘状态变为"可用"时，表示创建成功。新创建的云硬盘需要登录弹性云服务器初始化云硬盘，即格式化云硬盘，之后云硬盘才可以正常使用。 ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611645133.png "点击放大")
      
    
2. 使用VNC方式登录Linux弹性云服务器。
   1. 选择要登录的弹性云服务器，单击"操作"列下的"远程登录"。
   
   2. 在弹出的"登录Linux弹性云服务器"窗口中，选择"其他登录方式"下的"VNC登录"，单击"立即登录"。
   
   3. 根据界面提示，输入弹性云服务器密码。如果出现"Welcome to Huawei Cloud Service"，表示成功登录云服务器。
    
3. 初始化新创建的空白磁盘。 磁盘分区、文件系统、挂载目录等无特殊要求，本示例挂载的新建目录为：/export-image。
   1. 确认磁盘列表。
      1. 确认磁盘列表中是否包含系统盘、业务数据磁盘、空白磁盘。执行如下命令：
         ```
         lsblk
         ```
         
      
      2. 出现类似下图所示的回显信息，其中vda为系统盘，vdb为包含业务数据的磁盘，即磁盘名称为volume-data的磁盘，vdc为空白磁盘即磁盘名称为volume-export的空白磁盘。 ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002581421766.png "点击放大")
         ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
         - 磁盘名称可能不同，不影响实际操作。
         
         - 如何判断系统盘、业务数据磁盘、空白磁盘。
           - 挂载点为根目录的为系统盘。
           
           - 有文件分区但无挂载点的为包含业务数据的磁盘。
           
           - 无文件分区，无挂载点的为新增的空磁盘。
            
           
       
   
   2. 初始化磁盘，依次执行如下命令。
      ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/caution_3.0-zh-cn.png)
      如果磁盘容量大于2TiB时，请参考[初始化Linux数据盘（容量大于2TiB）](https://support.huaweicloud.com/usermanual-evs/evs_01_0051.html)。
      ```
      fdisk /dev/vdc
      n
      p
      1
      ```
      ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
      - 输入"n"，按"Enter"，新建分区。
      
      - 输入"p"，按"Enter"，选择分区类型为主分区。
      
      - 输入"1"，按"Enter"，选择主分区编号。此处以选择"1"为例。
      
      - 按"Enter"，选择分区起始地址。
      
      - 按"Enter"，选择分区结束地址。
      
      - 输入"w"，按"Enter"，系统会自动将分区结果写入分区表中，完成分区创建。
        
   
   3. 格式化文件系统，执行如下命令。
      ```
      mkfs -t ext4 /dev/vdc1
      ```
      
   
   4. 创建/export-image目录，执行如下命令。
      ```
      mkdir -p /export-image
      ```
      
   
   5. 将vdc1分区挂载到/export-image目录，执行如下命令。
      ```
      mount /dev/vdc1 /export-image
      ```
      
   
   6. 验证是否挂载成功，执行如下命令。
      ```
      lsblk
      ```
      出现类似下图回显信息，表示挂载成功。
      ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611728475.png "点击放大")
      
    
 
 #### 步骤六：制作镜像文件
1. 在/export-image目录新建文件image.qcow2，执行如下命令。
   ```
   touch /export-image/image.qcow2
   ```
   
2. 确认要导出的磁盘名称，执行如下命令。
   ```
   lsblk -d -n -o NAME | sed 's|^|/dev/|'
   ```
   回显信息如下，其中/dev/vdb为要导出的包含业务数据的磁盘，即磁盘名称为volume-data的磁盘。判断是否为包含业务数据的磁盘，请参考[确认磁盘列表]。
   ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002581251478.png)
   
3. 制作镜像文件，执行如下命令。 执行**qemu-img convert -p -f raw -O qcow2** {{包含业务数据的磁盘名称，本示例中为/dev/vdb}} {{新建的镜像文件路径，本示例中为/export-image/image.qcow2}}命令。
   示例：
   ```
   qemu-img convert -p -f raw -O qcow2 /dev/vdb /export-image/image.qcow2
   ```
   ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002581254814.png)
   ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
   命令执行时长与机器规格、数据量大小有关，请耐心等待。
   
 
 #### 步骤七：上传镜像文件至obs桶
1. 初始化obsutil配置。 以Linux操作系统为例，详细配置请参考[obsutil初始化配置](https://support.huaweicloud.com/utiltg-obs/obs_11_0005.html)。
   使用临时AK、SK、SecurityToken进行初始化配置，执行如下命令：
   ```
   ./obsutil config -i=xxxxx -k=xxxxx -t=xxxxx -e=xxxxx
   ```
   表2参数说明 
   | 参数 | 约束 | 描述                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|:---|
   | i  | 必选 | 永久或者临时访问密钥中的AK。                                                                                                                                                                                                                                                                                                                                          |
   | k  | 必选 | 永久或者临时访问密钥中的SK。                                                                                                                                                                                                                                                                                                                                          |
   | e  | 必选 | 连接OBS的服务地址。可包含协议类型、域名、端口号（可选）。示例：https://your-endpoint:443。（出于安全性考虑，建议使用https协议，443端口号可以省略） 例如，访问区域为华北-北京四，则实际的OBS服务地址为：https://obs.cn-north-4.myhuaweicloud.com。 说明： 您可以从[这里](https://console.huaweicloud.com/apiexplorer/#/endpoint/OBS)查看OBS当前开通的服务地址和区域信息。 |
   | t  | 可选 | 临时访问密钥中的securitytoken。当使用临时访问密钥，该参数必选，否则忽略即可。                                                                                                                                                                                                                                                                                                            |
      
   ![](https://support.huaweicloud.com/bestpractice-ims/public_sys-resources/note_3.0-zh-cn.png)
   - 以上命令运行后，会在运行obsutil命令的用户目录（Linux操作系统的"\~"目录。）下自动生成一个名为.obsutilconfig的配置文件，它包含了obsutil的所有配置信息。
   
   - .obsutilconfig的配置文件中的详细配置参数说明请参见[配置参数说明](https://support.huaweicloud.com/utiltg-obs/obs_11_0035.html)。
   
   - 获取临时AK、SK和SecurityToken请参考[IAM开发指导文档](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。
   
   - .obsutilconfig文件中保存有用户的AK和SK等信息，为避免密钥泄露，.obsutilconfig默认为隐藏文件，您可以在运行obsutil命令的用户目录下通过使用以下命令查看到该文件：
     Linux操作系统：
     ```
     ls -a
     ```
     或
     ```
     ls -al
     ```
     
   
   - obsutil会对.obsutilconfig文件中的AK和SK进行加密以保护密钥安全。
   
   - 注意：通过-i、-k、-e配置用户认证信息，linux操作系统的history命令可查询配置参数值，请妥善使用该操作。
     
2. 将镜像文件上传到obs桶。 执行**./obsutil cp** {{镜像文件路径，本示例为/export-image/image.qcow2}}**obs://** {{obs桶名}}**/**{{镜像文件上传到obs桶中的文件名}}命令。
   示例：
   ```
   ./obsutil cp /export-image/image.qcow2 obs://test-export-1/image.qcow2
   ```
   ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611737589.png "点击放大")
   
3. 确认镜像文件是否上传成功。 登录[OBS控制台](https://console.huaweicloud.com/obs/?#/obs/manager/buckets)，在桶列表页，根据桶名称查找对应桶，确认镜像文件是否存在，若存在表示镜像文件已上传成功。
   ![](https://support.huaweicloud.com/bestpractice-ims/zh-cn_image_0000002611931887.png "点击放大")
   
 
