一:基础:
1安装
yum grouplist
yum -y groupinstall "虚拟化" "虚拟化平台" "虚拟化工具" "虚拟化客户端"
Virtualization 虚拟化
Virtualization Client 虚拟化客户端
Virtualization Tools 虚拟化工具
Virtualization Platform 虚拟化平台
2.启动 kvm 服务(守护进程libvirtd)
/etc/init.d/libvirtd start
chkconfig libvirtd on
二 网络
1. 创建虚拟机
virt-manager —— 创建虚拟机、控制虚拟机
1)pxe
2)手动(cdrom
2. KVM桥接网卡配置
# vim ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
# vim ifcfg-eth0
。。。
BRIDGE=br0
3.添加虚拟网络
4.给虚拟机添加设备
三 配置文件
1一台虚拟机对应2个配置文件
虚拟机配置信息的文件 /etc/libvirt/qemu/serverA.xml
虚拟机磁盘镜像文件 /var/lib/libvirt/images/serverA.img
第一个配置文件 (四个位置确定唯一性)
<domain>
<name>serverA</name> 虚拟机名字
<uuid>46dd6b6e-e68b-f6f1-5a9d-d13eb8d13ee0</uuid> 唯一uuid
<source file=‘/var/lib/libvirt/images/serverA.img‘/> 镜像位置
<mac address=‘52:54:00:8e:4b:6c‘/> mac地址
</domain>
2虚拟系统管理器 --> 编辑 --> "Connection Details"
单击"+"号 --> network1 --> 192.168.4.0/24
不要启用KVM自带的DHCP
!!!! 避免VMware Workstation的虚拟网卡的冲突
四、virsh命令
1、查看KVM节点(服务器)信息
virsh nodeinfo
2、查看指定虚拟机的信息
virsh dominfo 虚拟机名称
3、查看虚拟机列表
virsh list
virsh list --all
4、查看virsh版本
virsh version
5、启动名称为rhel6pxe的GUEST主机
virsh start rhel6pxe
6、强制关闭GUEST主机
virsh destroy rhel6pxe
7、将指定的虚拟机重启
virsh reboot 虚拟机名称
8、将指定的虚拟机正常关机
virsh shutdown 虚拟机名称
9、导出GUEST主机的XML配置文件
virsh dumpxml 虚拟机名 查看
virsh dumpxml rhel6pxe > ~/rhel6pxe.xml
10、取消GUEST主机的定义
virsh undefine rhel6pxe
11、使用已经存在的xml文件和磁盘文件定义GUEST主机
virsh define ~/rhel6pxe.xml
12、设置GUEST主机在HOST主机启动时,也会自动启动
virsh autostart rhel6pxe
13、 将指定的虚拟机设置不随KVM自动开机
virsh autostart --disable 虚拟机名称
14、查看虚拟机(进入虚拟机界面)
virt-viewer 虚拟机名
15、虚拟机的挂起
virsh suspend rhel5f 虚拟机挂起
virsh resume rhel5f 挂起恢复
Virsh save rhel47 文件 将虚拟机状态保存到文件的挂起(内存的状态)
(重启物理机也可以恢复到原来状态)
Virsh restore 文件 将虚拟机恢复
16、链接远端qemu(KVM)
virsh -c qemu+ssh://[email protected]/system
17、virsh链接虚拟机
virsh console domain
如果界面卡死 Escape character is ~]
解决办法
修改客户端
1、修改 /etc/securetty 到最后添加 ttyS0
echo ttyS0 >> /etc/securetty
2、修改/etc/inittab 到最后添加 S0:12345:respawn:/sbin/agetty/ ttyS0 115200
echo "S0:12345:respawn:/sbin/agetty/ ttyS0 115200" >> /etc/inittab
3、修改/etc/grub.conf ,如下图所示在 kernel 这一行的末尾,添加console=ttyS0
6的内核哪一行为kernel XXXXX
7为linux16XXXXXXXX
重启客户端再次尝试
五、使用LVM方式管理虚拟主机磁盘
1、创建LV
(1)# fdisk -cu /dev/sdb ->把system-id改为8e
(2)# pvcreate /dev/sdb1
(3)# vgcreate vg_kvm /dev/sdb1
(4)# lvcreate -n rhel6base -L 10G vg_kvm
2、创建GUEST主机时,磁盘选择创建的LV
3、设置模板虚拟机。把模板计算的个性化信息去除,如root密码、IP地址等。
(1)启动rhel6base虚拟机后,执行以下命令
# touch /.unconfigured
4、生成lv快照
# lvcreate -s -n rhel6node1 -L 2G /dev/vg_kvm/rhel6base
5、导出原有虚拟机的配置文件
# virsh dumpxml rhel6base > rhel6node1.xml
6、生成一个uuid
[[email protected] ~]# uuidgen
9cb350bb-2add-461f-9e05-afc9799b3d9b
7、修改rhel6node1.xml
8、利用新的xml文件和LV快照定义新的克隆虚拟机
# virsh define rhel6node1.xml
9、当虚拟机用完,想要删除时,只要把虚拟机取消定义,并删除LV即可
# virsh undefined rhel6node1
# lvremove /dev/vg_kvm/rhel6node1
六、使用qcow2管理KVM虚拟机磁盘
1、创建qcow2磁盘文件
[[email protected] ~]# cd /var/lib/libvirt/images/
[[email protected] images]# qemu-img create -f qcow2 rhel6base.img 80G
磁盘格式转换
qemu-img convert -f vpc(virtual Box类型) -o raw 就磁盘 新磁盘名
2、查看虚拟磁盘文件信息
[[email protected] images]# qemu-img info rhel6base.img
image: rhel6base.img
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 136K
cluster_size: 65536
3、安装虚拟机到该文件中,使用脚本命令
七、使用qcow2增量镜像实现克隆虚拟机功能
1、根据基础镜像创建增量镜像文件
# qemu-img create -b rhel6base.img -f qcow2 rhel6basenode1.img
[[email protected] images]# qemu-img info rhel6basenode1.img
image: rhel6basenode1.img
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 136K
cluster_size: 65536
backing file: rhel6base.img
2、生成克隆虚拟机的XML文件
# virsh dumpxml rhel6base > rhel6basenode1.xml
# vim rhel6basenode1.xml #参见(三)中的修改方法
3、定义新的虚拟机
# virsh define rhel6basenode1.xml
八:LVM快照
1、 COW -> copy on write 写时复制
2、应用。如,数据库的库文件存在lv(名称为lv_db)上,大小为10G,如果在数据库仍然在运行的条件下,要备份某一个时间点的数据(如10:30),那么可以使用快照snapshot
# lvcreate -s -n lv_db-snap -L 1G /dev/vg_db/lv_db
# mount -o ro /dev/vg_db/lv_db-snap /mnt
从/mnt中把数据库备份走即可
3、快照只是临时应用,用完后移除即可
# lvremove /dev/vg_db/lv_db-snap
九、另一种克隆方法
virt-clone -o 模板虚拟机 -n 新虚拟机名称 -f 克隆后的虚拟机磁盘路径
十:从命令行创建虚拟机(建模板机)
1. 为虚拟机准备磁盘(逻辑卷)
lvcreate -L 20G -n lv_node1 vg_data
2. 创建新的虚拟机,并从命令行安装RHEL 6.5系统(PXE方式)
[[email protected] ~]# virt-install \
--name node1 --vcpus=1 --ram=1024 \
--disk path=/dev/vg_data/lv_node1 \
--network network=network1 --pxe
!!!! 详细可参考 man virt-install 手册页
!!!! 对于非PXE安装,应改用 --location=安装源URL
3. 初始化模板虚拟机,关机备用(平时应闲置)
touch /.unconfigured
//下次开机后会要求重设键盘、时区、root口令、网络等信息
4、brctl 命令
Brctl --help