libvirt-qemu-磁盘加密之二:LUKS

LUKS是一种基于device mapper机制的加密方式。使用加密磁盘前要先mapper映射,映射时需要输入密码,写入和读取磁盘时不需要再输入密码。LUKS可以选择不同的加密算法,也可以开发使用自己的加密算法。本文使用的虚拟机磁盘就是LUKS的加密磁盘。

 

 

(文章来自作者维护的社区微信公众号【虚拟化云计算】)
目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问

1. 创建luks格式的加密磁盘

# MYSECRET=`printf %s "123456" | base64`
# qemu-img create -f luks --object secret,data=$MYSECRET,id=sec0,format=base64,qom-type=secret -o key-secret=sec0 encrypt.luks 1G

 

2. 在本地创建一个秘钥xml secret.xml

<secret ephemeral='no' private='yes'>
    <uuid>7d195d98-6a06-4bb9-a0e9-6a2fde302f31</uuid>
</secret>

注:uuid项可以没有,那么将随机生成一个uuid

 

3. 定义一个libvirt的secret

# virsh secret-define secret.xml 
Secret 7d195d98-6a06-4bb9-a0e9-6a2fde302f31 created

 

4. 给secret设置密码值(这里的密码就是给磁盘加密时使用的密码123456)

# virsh secret-set-value 7d195d98-6a06-4bb9-a0e9-6a2fde302f31 $MYSECRET

注:密值是base64的(MYSECRET=`printf %s "123456" | base64`)

注:产生的secret以及密码在/etc/libvirt/secrets/中存在

 

5. 在虚拟机xml文件的disk段中加入secret

<disk device="disk" type="file">
  <driver name="qemu" type="raw" />
  <source file="/tmp/encrypt.luks" />
  <target bus="virtio" dev="vdb" />
  <encryption format='luks'>
    <secret type='passphrase' uuid='7d195d98-6a06-4bb9-a0e9-6a2fde302f31'/>
  </encryption>
</disk>

 

6. 启动虚拟机。虚拟启动后就是使用的加密的磁盘。

 

7. 磁盘加密虚拟机的迁移

在迁移之前要在远程libvirt建立相同的secret。远程建立secret的方式有两种:使用libvrit远程rpc的方式执行secret-define和secret-set-value ,或者直接在目标主机上执行上述过程。

 

注:

如果不在hypervior层使用secret-set-value进行解密,即在虚拟机xml的disk段中不添加encryption。那就需要到虚拟机中挂载磁盘时输入密码:

 


 


关注本公众号,了解更多关于云计算虚拟化的知识。

 

 
### 正确安装 `libvirt`、`libvirt-python`、`qemu-kvm` 及其相关工具 为了正确安装 `libvirt`、`libvirt-python`、`qemu-kvm` 和其他相关工具,可以通过以下方法完成: #### 1. 安装基础组件 在 CentOS 或 RHEL 类似系统上,可以直接使用 `yum` 命令安装所需的软件包。以下是具体的命令集合: ```bash yum install -y qemu-kvm qemu-img libvirt libvirt-python virt-manager virt-install virt-viewer ``` 此命令将一次性安装多个必要的组件[^1]。 #### 2. 验证 KVM 支持 确保硬件支持虚拟化技术,并已启用 BIOS 中的虚拟化选项。运行以下命令验证是否启用了 KVM 模块: ```bash lsmod | grep kvm ``` 如果返回结果为空,则可能未加载模块或硬件不支持虚拟化功能[^4]。 #### 3. 启动并配置服务 安装完成后,需启动 `libvirtd` 服务并将它设置为随系统启动自动运行: ```bash systemctl start libvirtd systemctl enable libvirtd ``` #### 4. 测试虚拟机创建能力 可以尝试通过 `virt-manager` 图形界面或者命令行工具 `virt-install` 来创建一台简单的虚拟机以确认环境正常工作[^2]。 对于 Rocky Linux 9 用户而言,除了上述提到的基础依赖外还需要额外增加一些特定于版本的支持库,例如 `bridge-utils`, `libguestfs-tools` 等[^3]: ```bash yum install -y qemu-kvm virt-manager libvirt virt-install virt-viewer \ bridge-utils libguestfs-tools ``` 以上步骤涵盖了从基本需求到高级扩展的所有必要操作说明. ```python print("Libvirt and related tools have been successfully installed.") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值