您的位置:首页 > 其它

KVM之初体验——使用libvirt的virsh管理kvm

2016-01-25 23:30 218 查看
一、KVM虚拟机的管理工具准确来说,KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。QEMU-KVM:在 Linux 系统中,首先我们可以用 modprobe 系统工具去加载 KVM 模块,如果用 RPM 安装 KVM
软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM
模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM
的开发者选择了已经成型的开源虚拟化软件 QEMU。QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 的 CPU
上虚拟一个 Power 的 CPU,并利用它编译出可运行在 Power 上的程序。KVM 使用了 QEMU 的基于 x86
的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。所以 Linux 发行版中分为 kernel 部分的 KVM
内核模块和 QEMU-KVM 工具。这就是 KVM 和 QEMU 的关系。Libvirt、virsh、virt-manager:尽管 QEMU-KVM 工具可以创建和管理 KVM 虚拟机,RedHat 为 KVM
开发了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt
是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用
libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt
不仅提供了 API,还自带一套基于文本的管理虚拟机的命令—— virsh,你可以通过使用 virsh 命令来使用 libvirt
的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。他是一套用 python
编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt 的 API 实现的。二、libvirt简介 libvirt是Linux上的虚拟化库,是长期稳定的C语言API,支持KVM/QEMU、Xen、LXC等主流虚拟化方案。链接:http://libvirt.org/
virsh是libvirt对应的shell命令。
三、virsh基础常用操作
1.查看虚拟机磁盘列表(包括光驱):
#virsh domblklist
rhel6
#rhel6代表虚拟机名称
Target     Source
------------------------------------------------
vda        /var/lib/libvirt/images/Clinet
hdc        /FTP/gnome-uplookinng/rhel6u4.iso
Target    设备名(磁盘名):
命名规范例如:   vda      vd代表:虚拟磁盘     a   第一块   hdc(通常固定为cdrom的设备名)
2.添加/删除硬盘(可以在线添加/删除):
#qemu-img create -f qcow2 -o preallocation=metadata /var/lib/libvirt/images/rhel.qcow2 15G
#virsh attach-disk rhel6 /var/lib/libvirt/images/rhel6.vdb vdb --persistent
#virsh detach-disk node002 /var/lib/libvirt/images/rhel.qcow2 --persistent
命令语法:
attach-disk 添加磁盘的参数
rhel6          虚拟机的名称
/var/lib/libvirt/images/rhel6.vdb   磁盘文件的路径和名称
vdb             磁盘文件的设备名称
--persistent   永久添加磁盘,不加该参数代表非永久添加,虚拟机重启后磁盘消失.
3.添加/删除网卡(离线添加):
#virsh attach-interface node --type bridge --source br0 --persistent
#virsh detach-interface node --type bridge  --mac 52:54:00:e5:82:c1 --persistent
#删除网卡必须带mac地址
4.镜像操作

添加镜像:
#virsh attach-disk rhel6 /FTP/rhel6u4.iso  hdc --type cdrom --persistent
更换镜像:
#virsh change-media rhel6 hdc /FTP/rhel-server-6.5-x86_64-dvd.iso

四、virsh命令分类

可以创建、删除、运行、停止和管理你的虚拟机从命令行,使用一个叫做virsh工具。Virsh高级Linux管理员,尤其有用脚本或自动化管理他们的虚拟机。

五、virsh 命令选项1.virsh常用命令



2. virsh 命令选项 - 存储器




3. virsh 命令选项 - 资源



4. virsh 命令选项 - 网络



5. virsh 命令选项:用户管理


系统会使用为用户和组设置的缺省值创建用户和组。当创建用户或组标识时,所创建帐户将处于锁定状态。必须分配密码以解锁该标识。
例如,创建名为 NeildeGrasseTyson 的用户。
useradd NeildeGrasseTyson要查看使用该用户创建的缺省值,请添加 -D 选项:
useradd NeildeGrasseTyson -D要解锁用户帐户,请添加密码:
passwd NeildeGrasseTyson有关这些命令的选项的更多信息,请参阅这些命令的联机帮助页。
密码管理
良好的密码管理包含必须要求用户定期更改密码这一需求。要配置密码到期,请使用图形用户管理界面中提供的密码选项或 chage 命令。
chage 命令允许您指定密码寿命值(例如在密码更改之间的天数)。
例如,对于用户标识 NeildeGrasseTyson,要将密码更改之间的天数指定为 90 天,请发出以下命令:
chage -M 90 NeildeGrasseTyson当最初对用户标识进行使用时,还可强制立即更改密码。请使用以下命令:
chage -d 0 NeildeGrasseTyson有关这些命令的选项的更多信息,请参阅这些命令的联机帮助页。


6. virsh 命令选项:迁移



结束语 基于 Linux 的开源虚拟化技术在不停地发展。KVM 的易用性和持续发展已帮助它取代了可能更强大的 Xen 虚拟化技术,成为开源 Linux 虚拟化的标准。无论选择哪种虚拟化技术,这种演变都突出了使用标准的、独立于技术的管理命令(比如 libvirt 虚拟化 API 所提供的命令)的价值。
KVM 虚拟机在不断的增强和完善中,开源社区和 Linux 的系统集成商也在开发各种各样的基于 KVM 的管理工具,将来的 KVM 迁移工具会在性能,功能,可操作性和自动化程度上大大增强。
本文通过示例展示了如何使用基于 libvirt 的命令来简化虚拟机的存储分配以及在存储中安装它的过程,但仅触及了 libvirt API 和基于它的免费命令所提供的许多强大管理功能的冰山一角。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  虚拟机 系统工具 KVM