KVM构建及管理 、 virsh控制工具 、 镜像管理 、 虚拟机快建技术
一、虚拟机A的硬件环境设置1.内存设置为6G(真机留下2G,其余的给虚拟机A)2.添加一块50G硬盘3.CPU开启虚拟化功能[root@svr7 ~]# free -m #查看内存大小[root@svr7 ~]# lsblk #查看识别的硬盘二、虚拟机A的硬盘空间的设置情况一:根分区为逻辑卷]# vgs]# lvs]# vgextend centos ...
-
一、虚拟机A的硬件环境设置
1.内存设置为6G(真机留下2G,其余的给虚拟机A)
2.添加一块50G硬盘
3.CPU开启虚拟化功能
[root@svr7 ~]# free -m #查看内存大小
[root@svr7 ~]# lsblk #查看识别的硬盘
-
二、虚拟机A的硬盘空间的设置
情况一:根分区为逻辑卷
]# vgs
]# lvs
]# vgextend centos /dev/sdb #扩展卷组
]# vgs
]# lvextend -L 40G /dev/centos/root #扩展逻辑卷
]# lvs
]# blkid /dev/centos/root
]# xfs_growfs /dev/centos/root #刷新文件系统
]# df -h
情况二:根分区为基本分区
[root@svr7 ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): #回车
Using default response p
分区号 (1-4,默认 1): #回车
起始 扇区 (2048-83886079,默认为 2048): #回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079): #回车
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 50 GiB
命令(输入 m 获取帮助):w #保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@svr7 ~]# lsblk
[root@svr7 ~]# mkfs.xfs /dev/sdb1 #格式化文件系统
[root@svr7 ~]# mkdir /iso
[root@svr7 ~]# mount /dev/sdb1 /iso
[root@svr7 ~]# vim /etc/fstab
/dev/sdb1 /iso xfs defaults 0 0
[root@svr7 ~]# umount /iso #卸载设备
[root@svr7 ~]# df -h
[root@svr7 ~]# mount -a #检测/etc/fstab是否书写正确
[root@svr7 ~]# df -h
- 传递光盘镜像文件CentOS7-1804.iso到虚拟机A
[root@svr7 ~]# mkdir /iso
[root@svr7 ~]# du -sh /iso
8.8G /iso
-
三、虚拟化概述
- virtualization 资源管理
- x个物理资源 --> y个逻辑资源
- 实现程度:完全、部分、硬件辅助(CPU)
- 虚拟化主要厂商及产品
系 列 | PC/服务器版代表 |
VMware | VMware Workstation、vSphere |
Microsoft | VirtualPC、Hyper-V |
RedHat | KVM、RHEV |
Citrix | Xen |
Oracle | Oracle VM VirtualBox |
- KVM虚拟化主要软件包
- qemu-kvm :为 kvm 提供底层仿真支持
- libvirt-daemon :libvirtd 守护进程,管理虚拟机
- libvirt-client :用户端软件,提供客户端管理命令
- libvirt-daemon-driver-qemu :libvirtd 连接 qemu 的驱动
- virt-manager :图形管理工具
]# yum -y install qemu-kvm
]# yum -y install libvirt-daemon
]# yum -y install libvirt-client
]# yum -y install libvirt-daemon-driver-qemu
]# yum -y install virt-manager
- 安装KVM虚拟机
- 管理虚拟机相关的命令
•提供管理各虚拟机的命令接口
–支持交互模式,查看/创建/停止/关闭 .. ..
–格式:virsh 控制指令 [虚拟机名称] [参数]
•查看KVM节点(服务器)信息
–virsh nodeinfo
•列出虚拟机
–virsh list [--all]
•查看指定虚拟机的信息
–virsh dominfo 虚拟机名称
•运行|重启|关闭指定的虚拟机
–virsh start或reboot或shutdown 虚拟机名称
•强制关闭指定的虚拟机
–virsh destroy 虚拟机名称
•将指定的虚拟机设为开机自动运行
–virsh autostart [--disable] 虚拟机名称
]# virsh dominfo nsd2006 #查看虚拟机信息
]# virsh autostart nsd2006 #设置虚拟机开机自动启动
]# virsh dominfo nsd2006 #查看虚拟机信息
]# virsh autostart --disable nsd2006 #设置虚拟机禁止开机自动启动
]# virsh list #显示当前有哪些正在运行的虚拟机
]# virsh list --all #显示当前全部虚拟机
]# virsh destroy nsd2006 #强制关闭虚拟机nsd2006
]# virsh list --all #显示当前全部虚拟机
]# virsh start nsd2006 #开启虚拟机
]# virsh reboot nsd2006 #重启虚拟机
-
四、KVM虚拟机的组成
xml配置文件:定义虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置
默认存放路径:/etc/libvirt/qemu/
磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义
默认存放路径:/var/lib/libvirt/images/
- 手动命令克隆KVM虚拟机
1.创建新的磁盘镜像文件
]# virsh destroy nsd2006 #强制关闭虚拟机nsd2006
]# virsh list --all
]# cp /var/lib/libvirt/images/nsd2006.qcow2 /var/lib/libvirt/images/nsd01.qcow2
]# du -sh /var/lib/libvirt/images/nsd01.qcow2
2.创建xml配置文件
]# cp /etc/libvirt/qemu/nsd2006.xml /etc/libvirt/qemu/nsd01.xml
]# vim /etc/libvirt/qemu/nsd01.xml
虚拟机的名字:<name>nsd01</name>
虚拟机的UUID:<uuid>…………</uuid> #删除整行内容
虚拟机磁盘镜像文件:<source file='/var/lib/libvirt/images/nsd01.qcow2'/>
网卡MAC地址:<mac address='……..'/> #删除整行内容
3.导入xml配置文件
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd01.xml
[root@svr7 ~]# virsh list --all
[root@svr7 ~]# virsh start nsd01
常见问题:UUID没有删除
[root@svr7 ~]# cp /var/lib/libvirt/images/qq.qcow2 /var/lib/libvirt/images/nsd02.qcow2
[root@svr7 ~]# cp /etc/libvirt/qemu/qq.xml /etc/libvirt/qemu/nsd02.xml
[root@svr7 ~]# vim /etc/libvirt/qemu/nsb02.xml
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd02.xml
错误:从 /etc/libvirt/qemu/nsd02.xml 定义域失败
错误:操作失败: 已使用 uuid nsd2006 定义域名 '79baf210-9c12-4519-9a2d-92fc67d795a1'
常见问题:磁盘镜像文件路径书写错误
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd02.xml
定义域 nsd02(从 /etc/libvirt/qemu/nsd02.xml)
[root@svr7 ~]# virsh start nsd02
错误:开始域 nsd02 失败
错误:Cannot access storage file '/var/lib/libvirt/images/haha.qcow2' (as uid:107, gid:107): 没有那个文件或目录
[root@svr7 ~]# vim /etc/libvirt/qemu/nsd02.xml
[root@svr7 ~]# virsh define /etc/libvirt/qemu/nsd02.xml
定义域 nsd02(从 /etc/libvirt/qemu/nsd02.xml)
[root@svr7 ~]# virsh start nsd02
域 nsd02 已开始
练习:
1.创建新的磁盘镜像文件
]# virsh destroy nsd2006 #强制关闭虚拟机nsd2006
]# virsh list --all
]# cp /var/lib/libvirt/images/nsd2006.qcow2 /var/lib/libvirt/images/stu01.qcow2
]# du -sh /var/lib/libvirt/images/stu01.qcow2
2.创建xml配置文件
]# cp /etc/libvirt/qemu/nsd2006.xml /etc/libvirt/qemu/stu01.xml
]# vim /etc/libvirt/qemu/stu01.xml
虚拟机的名字:<name>stu01</name>
虚拟机的UUID:<uuid>…………</uuid> #删除整行内容
虚拟机磁盘镜像文件:<source file='/var/lib/libvirt/images/stu01.qcow2'/>
网卡MAC地址:<mac address='……..'/> #删除整行内容
3.导入xml配置文件
[root@svr7 ~]# virsh define /etc/libvirt/qemu/stu01.xml
[root@svr7 ~]# virsh list --all
[root@svr7 ~]# virsh start stu01
- 虚拟机的磁盘镜像文件格式
特点\类型 | RAW | QCOW2 |
KVM默认 | 否 | 是 |
I/O效率 | 高 | 较高 |
占用空间 | 大 | 小 |
压缩 | 不支持 | 支持 |
后端盘复用 | 不支持 | 支持 |
快照 | 不支持 | 支持 |
- 磁盘镜像文件快速生成
Copy On Write,写时复制
- 前端盘直接映射原始盘(后端盘)的数据内容
- 原始盘内容不变,并且不能修改原始盘内容,否则所有前端盘无法使用
- 对前端盘的修改不回写到原始盘
- qemu-img 通过 -b 选项复用指定后端盘
- qemu-img create -f qcow2 -b 后端盘 前端盘
1.创建新的磁盘镜像文件
]# cd /var/lib/libvirt/images/
]# qemu-img create -f qcow2 -b nsd2006.qcow2 stu05.qcow2
]# qemu-img info stu05.qcow2 #查看前端盘信息
virtual size: 9.0G (9663676416 bytes) #虚拟大小
disk size: 196K #实际占用空间的大小
backing file: nsd2006.qcow2 #指明后端盘
2.创建xml配置文件
]# cp /etc/libvirt/qemu/nsd2006.xml /etc/libvirt/qemu/stu05.xml
]# vim /etc/libvirt/qemu/stu05.xml
虚拟机的名字:<name>stu05</name>
虚拟机的UUID:<uuid>…………</uuid> #删除整行内容
虚拟机磁盘镜像文件:<source file='/var/lib/libvirt/images/stu05.qcow2'/>
网卡MAC地址:<mac address='……..'/> #删除整行内容
3.导入xml配置文件
[root@svr7 ~]# virsh define /etc/libvirt/qemu/stu05.xml
[root@svr7 ~]# virsh list --all
[root@svr7 ~]# virsh start stu05
五、离线访问磁盘镜像文件内容
- 使用 guestmount 工具
- 支持离线挂载 raw、qcow2 格式虚拟机磁盘
- 可以在虚拟机关机的情况下,直接修改磁盘中的文档
- 方便对虚拟机定制、修复、脚本维护
!!! 需要注意 SELinux 机制的影响
- 基本用法
guestmount -a 虚拟机磁盘文件路径 -i /挂载点
]# ls /var/lib/libvirt/images/
]# yum provides */guestmount #查询仓库中那个软件包产生
]# yum -y install libguestfs-tools-c
]#guestmount -a /var/lib/libvirt/images/nsd01.qcow2 -i /mnt
]# ls /mnt/
]# umount /mnt/
六、修改已存在用户的家目录
[root@svr7 ~]# useradd harry
[root@svr7 ~]# grep harry /etc/passwd
[root@svr7 ~]# ls /home/
[root@svr7 ~]# usermod -d /opt/test harry
[root@svr7 ~]# grep harry /etc/passwd
[root@svr7 ~]# ls /opt/
[root@svr7 ~]# cp -r /etc/skel/ /opt/test
[root@svr7 ~]# ls -A /opt/test
[root@svr7 ~]# chown -R harry:harry /opt/test
[root@svr7 ~]# ls -lA /opt/test
更多推荐
所有评论(0)