最佳实践
概述
这里的最佳实践,主要是使用 Libvirt 工具集对虚拟机的全生命周期进行管理。比如创建、修改、删除虚拟机。
最常用的工具是 virt-install、virsh 命令
通过 libvirt 远程管理虚拟机
通过 TCP 连接
参考:
systemctl stop libvirtd.service
在 /etc/libvirt/libvirtd.conf
文件中添加 auth_tcp="none"
让 libvirtd 监听本地 TCP 端口
systemctl enable libvirtd-tcp.socket --now
systemctl start libvirtd.service
最后使用 virsh -c qemu+tcp://192.168.1.66/system
即可连接到远程 libvirtd
通过 SSH 连接
virsh -c qemu+ssh://root@192.168.1.166/system
配置URI别名
为了简化管理员的工作,可以在 libvirt 客户端配置文件中设置 URI 别名。对于 root 用户,配置文件为 /etc/libvirt/libvirt.conf
;对于任何非特权用户,配置文件为 $XDG_CONFIG_HOME/libvirt/libvirt.conf
。在此文件中,可以使用以下语法来设置别名
uri_aliases = [
"hail=qemu+ssh://root@hail.cloud.example.com/system",
"sleet=qemu+ssh://root@sleet.cloud.example.com/system",
]
URI 别名应该是由字符 a-Z
、0-9
、_
、-
组成的字符串。 =
后面可以是任何 libvirt URI 字符串,包括任意 URI 参数。 URI 别名将应用于任何打开 libvirt 连接的应用程序,除非它已显式地将 VIR_CONNECT_NO_ALIASES 参数传递给 virConnectOpenAuth。如果传入的 URI 包含允许的别名字符集之外的字符,则不会尝试别名查找。
创建虚拟机
详见 virt-install 命令中的应用示例
为 Domain 添加/移除磁盘
设定几个变量
# 将要操作的虚拟机
export DOMAIN="tj-test-common-kvm"
# 将要附加的存储设备
export SOURCE_DEVICE="/var/lib/libvirt/images/test-data.qcow2"
export TARGET_DEVICE="vdb"
先创建一个 qcow2 文件,然后使用这个文件进行测试
qemu-img create -f qcow2 -o size=10G ${SOURCE_DEVICE}
为 tj-test-common-kvm 添加一块磁盘,使用 /var/lib/libvirt/images/test-data.qcow2 文件
virsh attach-disk ${DOMAIN} ${SOURCE_DEVICE} \
--driver qemu --subdriver qcow2 \
--target ${TARGET_DEVICE} --targetbus virtio \
--cache none \
--persistent
将会生成如下 xml
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/var/lib/libvirt/images/test-data.qcow2'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
</disk>
将 tj-test-common-kvm 虚拟机中的 vdb 设备分离
virsh detach-disk ${DOMAIN} ${TARGET_DEVICE} --persistent
为 Domain 设置引导设备
编辑 xml 文件,修改 boot 元素的 dev 属性为 cdrom,从硬盘启动就是 hd。
<os>
<type arch='x86_64' machine='pc-q35-6.2'>hvm</type>
<boot dev='cdrom'/>
</os>
为 Domain 设置 CDROM
编辑 xml 文件,指定 source 元素的 file 属性。若不存在 source 元素,则手动添加即可。
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/lib/libvirt/iso/iKuai8_x64_3.7.6_Build202309081651.iso'/>
<target dev='sda' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.