Hyper Protect Virtual Servers 从 VPC 到内部部署的安全数据迁移

本综合指南将指导您完成从 IBM Cloud VPC 上运行的 Hyper Protect Virtual Servers 实例向内部环境安全迁移数据的过程。

Hyper Protect Virtual Servers 云数据卷使用用户提供的种子值进行完全加密,确保只有原始用户才能解密数据。 这些加密卷可以传输到内部环境,并保持完全的机密性。 只有在 IBM Confidential Computing Container Runtime 或 IBM Confidential Computing Container Runtime for Red Hat Virtualization Solutions 内部部署中才能对传输的卷进行解密,因为 LUKS 解密口令 仅在 HPVS 实例的安全执行边界内生成。 安全执行边界旨在保护内存秘密免遭篡改和检查,包括内存转储或系统管理员或管理程序的访问尝试。 因此,在 HPVS 实例的整个生命周期内,加密密钥和口令都将保持隔离和保护。

本指南中描述的迁移步骤仅在服务终止 (EOS) 窗口之前有效。 如需了解更多信息,请参阅 服务弃用公告。

先决条件

请确保您具备以下条件:

  • VPC SE VSI 使用 HPVS 实例的 Active IBM Cloud 账户

  • VPC NON SE VSI 在 IBM Cloud 上运行的虚拟服务器实例,安装有 qemu-utils 软件包

  • VPC NON SE VSI 足够的存储空间,以容纳从 ssh 到 VSI 的机器中的卷快照

  • VPC NON SE VSI VPC SE VSI 对云环境和内部部署环境的管理访问

  • 用于在以下设备上部署 HPVS 的原始合同和种子文件 IBM Cloud

  • 备份验证:确认 HPVS 实例上有最近的数据备份 ( IBM Cloud 部署)

  • 停机计划:建议安排一个维护窗口,避免在迁移过程中修改加密卷。

  • 网络连接:确保卷快照计算机与内部计算机之间的安全传输机制(VPN、直接链接或安全文件传输

  • 所需工具:在虚拟服务器实例上安装 qemu-utils:

    • 用于 Ubuntu 或 Debian:

      sudo apt-get update && sudo apt-get install -y qemu-utils
      
    • 对于 RHEL 或 CentOS:

      sudo yum install -y qemu-img
      

迁移工作流程图

迁移工作流程图
迁移工作流程图

过程

步骤 1:为加密磁盘卷制作快照

为连接到 HPVS 实例的加密磁盘卷拍摄卷快照。 有关详细信息,请参阅 创建 Block Storage for VPC 快照。

第 2 步:使用快照用 QEMU 创建虚拟服务器实例

通过导入快照创建虚拟服务器实例。 有关详细信息,请参阅 在控制台中创建虚拟服务器实例。

第 3 步:确定音量位置

  1. 通过 SSH 登录到您的虚拟服务器实例:

    ssh -i /path/to/private_key user@<VSI_IP_ADDRESS>
    
  2. 运行 lsblk 命令列出所有块设备:

    lsblk
    
  3. 确定输出中的音量:

请参见以下输出示例:

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda     254:0    0  100G  0 disk
├─vda1  254:1    0 99.9G  0 part /
├─vda14 254:14   0    3M  0 part
└─vda15 254:15   0  124M  0 part /boot/efi
vdb     254:16   0  368K  0 disk
vdc     254:32   0   44K  0 disk
vdd     254:48   0   10G  0 disk              ← new volume
├─vdd1  254:49   0   99M  0 part
└─vdd2  254:50   0  9.9G  0 part

新卷通常是最后列出的设备(本例中为 vdd )。

  1. 记下设备路径(例如:/dev/vdd ),以便下一步使用。

第 4 步:创建卷快照

使用 QEMU 工具创建卷的压缩快照。

  1. 创建一个用于存储快照的目录:

    sudo mkdir -p /var/lib/libvirt/images/hpvs/snap-image
    cd /var/lib/libvirt/images/hpvs/snap-image
    
  2. 使用 qemu-img 创建快照:

    sudo qemu-img convert -p -f raw -O qcow2 /dev/vdd vdd.qcow2
    

    命令参数:

    • -p:在转换过程中显示进度
    • -f raw:源格式(原始块设备)
    • -O qcow2:输出格式( QCOW2 压缩图像)
    • /dev/vdd:源设备(用设备路径代替)
    • vdd.qcow2: 输出文件名

    这个过程可能需要相当长的时间,这取决于容量的大小。 一个 10 GB 的卷通常需要 5-15 分钟。

  3. 验证快照是否已成功创建:

    ls -lh vdd.qcow2
    qemu-img info vdd.qcow2
    

    预期输出:

    image: vdd.qcow2
    file format: qcow2
    virtual size: 10 GiB (10737418240 bytes)
    disk size: 2.5 GiB
    cluster_size: 65536
    

第 5 步:将快照传输到内部部署

安全地将快照文件传输到内部环境。

scp vdd.qcow2 user@on-premises-host:/var/lib/libvirt/images/hpvs/snap-image/

第 6 步:配置内部虚拟服务器

更新内部部署虚拟服务器配置,以使用迁移的卷。

  1. 找到域 XML 配置文件:

    • 对于 HPVS:hpvsnew.xml
    • 用于 HPCR:hpcrnew.xml
  2. 编辑 XML 文件以添加或更新磁盘配置:

对于 HPVS (hpvsnew.xml):

<domain type='kvm'>
  <name>hpvs-migrated</name>
  <devices>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none' iommu='on'/>
      <source file='/var/lib/libvirt/images/hpvs/snap-image/vdd.qcow2'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
  </devices>
</domain>

用于 HPCR (hpcrnew.xml):

<domain type='kvm'>
  <name>hpcr-migrated</name>
  <devices>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none' iommu='on'/>
      <source file='/var/lib/libvirt/images/hpvs/snap-image/vdd.qcow2'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
  </devices>
</domain>

配置参数:

  • type='file':磁盘源为文件
  • device='disk':设备类型为磁盘
  • driver name='qemu' type='qcow2':使用 QCOW2 格式的 QEMU 驱动程序
  • cache='none':禁用缓存以提高数据完整性
  • iommu='on':启用 IOMMU 以确保安全
  • target dev='vdb':访客内的设备名称
  • bus='virtio':使用 VirtIO 可提高性能
  1. 确保拥有初始部署 HPVS 时使用的原始合同和种子文件。