最近在找虚拟机磁盘加密的资料,发现网上资料还是比较少,在这里汇总一下。
之前qcow2格式的磁盘默认加密方式似乎已经不再支持,官方推荐luks或dm-crypt加密。

$ man qemu-img
...
Use of qcow / qcow2 encryption is thus strongly discouraged.
Users are recommended to use an alternative encryption
technology such as the Linux dm-crypt / LUKS system.
...

1.创建新的luks虚拟磁盘(若选择1则跳过2)

  1. 创建luks格式磁盘,data为要设置的磁盘密码。luks好像不支持空洞模式,申请的空间大小会完全预分配。(如有错误,欢迎指正。)
$ qemu-img create -f luks --object secret,data=123456,id=sec0 -o key-secret=sec0 demo.luks 10G

2.从已有qcow2磁盘镜像转换(若选择2则忽略1)

  1. 有一个qcow2的镜像,且是shutdown状态
  2. 新建一个luks镜像,并且与上述qcow2相等大小
$ qemu-img create -f luks --object secret,data=123456,id=sec0 \
-o key-secret=sec0 demo.luks 10G
  1. 将qcow2转换为luks
$ qemu-img convert --target-image-opts --object secret,data=123456,id=sec0 \
-f qcow2 demo.qcow2 -n driver=luks,file.filename=demo.luks,key-secret=sec0

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

此处uuid可以通过qemu-img info demo.luks查看

修改uuid

<secret ephemeral='no' private='yes'><uuid>fbae4c81-0d6c-4ed1-9e73-581eb8b7131f</uuid>
</secret>

4. 定义密钥文件

$ virsh secret-define secret.xml
Secret fbae4c81-0d6c-4ed1-9e73-581eb8b7131f created

5. 给secret设置密码值

(这里的密码就是给磁盘加密时使用的密码123456)

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

注:密值是base64的(MYSECRET=printf %s "123456" | base64
注:产生的secret以及密码在/etc/libvirt/secrets/中存在

6. 复制虚拟机xml文件,在disk段中加入secret

默认kvm虚拟机配置文件目录/etc/libvirt/qemu/

如果是从cdrom引导项就启用加密,则需要修改boot引导设备

7. 定义、启动虚拟机

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

$ virsh define file.xml
$ virsh start domain

附:通过qemu-system-x86_64启动虚拟机

  1. 通过qemu-system-x86_64可以创建qcow2格式的磁盘,并采用luks加密
$ qemu-img create --object secret,id=sec0,data=123456 -f qcow2 \
-o encrypt.format=luks,encrypt.key-secret=sec0 base.qcow2 10G
  1. 通过qemu-system-x86_64安装虚拟机,可通过vnc安装。
qemu-system-x86_64 --object secret,id=sec0,data=123456 \
-drive driver=qcow2,file.filename=base.qcow2,encrypt.key-secret=sec0 \
-cdrom ./iso/ubuntu-16.04.6-desktop-amd64.iso \
-boot d -m 1024 -enable-kvm -vnc :1

此处应有通过virt-install 安装加密磁盘的虚拟机的命令,博主暂时没有找到可用的命令,如果有可用的virt-install安装方案,欢迎留言!!!


参考文章

https://cloud.tencent.com/developer/article/1162145
https://libvirt.org/formatstorageencryption.html#StorageEncryption
http://blog.leanote.com/post/7wlnk13/%E5%88%9B%E5%BB%BAKVM%E8%99%9A%E6%8B%9F%E6%9C%BA
https://bugzilla.redhat.com/show_bug.cgi?id=1406803
https://bugzilla.redhat.com/show_bug.cgi?id=1575578

KVM虚拟机磁盘加密相关推荐

  1. kvm qcow2和ceph rbd虚拟机磁盘加密

    微信公众号:运维开发故事,作者:wanger kvm qcow2磁盘加密 关于luks加密 LUKS 实现了一种独立于平台的标准磁盘格式,用于各种工具.LUKS 用于加密块设备.加密设备的内容是任意的 ...

  2. KVM虚拟机磁盘精简导出

    KVM虚拟机的模版导出,通常都是直接用qemu-img命令可以将默认的raw格式或者qcow2格式的磁盘文件压缩后导出,指令如下: //将默认raw格式的磁盘,简单压缩转换成qcow2格式 #qemu ...

  3. openstack kvm 虚拟机磁盘差异衍生

    1, openstack虚拟实例备份之--多镜像格式多镜像文件合并为一个镜像文件 衍生-差异镜像文件    /var/lib/nova/instances/b0abc22f-1a73-4079-b1b ...

  4. kvm虚拟化学习笔记(十一)之kvm虚拟机扩展磁盘空间

    kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块raw格式的磁盘加入到 ...

  5. kvm虚拟机扩展磁盘空间

    一.静态扩展磁盘 kvm虚拟机磁盘空间扩展与xen虚拟机磁盘空间扩展思路一致.原因在于xen/kvm默认的虚拟机磁盘格式为raw,所以方式可以通用. raw磁盘格式扩展思路如下 (1) 新添加一块ra ...

  6. KVM虚拟机快速入门

    ##kvm虚拟化 1.1 kvm 虚拟化介绍 什么是虚拟化 ​ 在计算机技术中,虚拟化技术或虚拟技术(virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU,内存,磁盘空间 ...

  7. Kvm虚拟机克隆以及添加磁盘

    2019独角兽企业重金招聘Python工程师标准>>> 克隆虚拟机 已有虚拟机ly1,现在需要一台新的虚拟机,直接从ly1复制. 首先关闭正在运行的ly1 virsh # destr ...

  8. kvm虚拟化技术下虚拟机磁盘的数据保护

    摘要:kvm虚拟化技术下虚拟机的磁盘空间中数据的保护与恢复,考虑kvm的服务器级别的可用性. 1.kvm技术简单介绍    kvm虚拟化技术由几部分构成,kvm内核模块(cpu和内存的虚拟化及管理), ...

  9. 虚拟机linux扩展磁盘容量,kvm虚拟机扩展磁盘容量

    virt-resize扩展 #关闭kvm虚拟机 virsh shutdown testkvm2 #安装工具 yum install -y libguestfs-tools #查看磁盘文件位置 virs ...

最新文章

  1. python的工作方向-python职业发展方向有哪些,各有什么优劣?
  2. 特征训练、预测一致性管理工具:开源项目Feast
  3. php一些错误的显示问题
  4. Spring MVC使用指示符重定向
  5. NB-IoT模块 移远BC26接入OneNET
  6. java stream Interface BiFunction<T,U,R>
  7. scrapy工作流程
  8. php期末考试题机考_phP基础知识期末考试题.doc
  9. 存储系统的实现-探析存储的机制和原理
  10. 5 年 Java 面试大厂遭淘汰,面试官:连这个源码都不懂
  11. 通过实例学习编写需求文档 【转】
  12. 网页内嵌多媒体 IE,Mozilla、Firefox、NetScape、Opera
  13. 开源中国众包平台 —— 为什么我们需要托管赏金
  14. html轮播图片在线制作,如何制作图片轮播?轮播图在线制作技巧
  15. 【MySQL】5、Update修改语句
  16. 科学家与艺术家心中都装着什么
  17. MVCC和快照读丶当前读
  18. 复制excel或word中图片不失真
  19. 全球所有国家中英文名称
  20. Python selenium使用中遇到的问题总结

热门文章

  1. Ubuntu 使用pipy 镜像
  2. Day02 每日英语
  3. 中国化工发展的新态势
  4. 锁与并发工具包与线程池与LockSupport与Fork/Join框架与并行流串行流与阻塞队列与JPS,jstack命令查看死锁查看线程状态与AQS个人笔记九
  5. SpringBootAdmin 显示offline
  6. 【Linux】基础常用操作
  7. 计算机毕业设计开题报告基于ssm maven健身房俱乐部管理系统
  8. 【Kivy自学笔记】Python开发App必备!Kivy基础控件详解(含视频源码)
  9. 前端开发培训应掌握的知识点
  10. android 代码分享图片不显示,android原生分享图片失败的问题