一.虚拟机的创建
1.添加镜像到本地(利用rz命令)
mkdir /iso
上传镜像到/iso下,
PS:虚拟机创建镜像[root@localhost ~]# dd if=/dev/cdrom of=/iso/CentOS-7.0.iso
2.命令创建虚拟机
1).使用qemu-img工具创建硬盘,格式,路径,多大
mkdir /disk
qemu-img create -f qcow2 /disk/test.img 10G
2).创建虚拟机
virt-install --virt-type kvm --name test --ram 1024 --cdrom=/iso/CentOS-7.0.iso --disk path=/disk/test.img --network bridge=bro --graphics vnc,listen=0.0.0.0
添加vnc端口并添加远程vnc密码(端口必须为5900以上):例
virt-install --virt-type kvm \
--name test \
--ram 512 \
--vcpus=1 \
--location=/iso/CentOS-7.0.iso\
--diskpath=/disk/test.img \
--network bridge=bro \
--graphics vnc,password=123,port=8000,listen=0.0.0.0
netstat -anlpt| grep qemu
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 2662/qemu-kvm
虚拟机的监听默认端口为5900(一直往上加)
3).利用vnc连接虚拟机
(1)利用vnc远程连接本机的5900端口安装系统
在本机上安装tigervnc
yum -y install tigervnc tigervnc-server
(2)下载vnc工具
本机ip:5900登录服务器
4)用CRT 远程管理virt-manager(需要安装xming)
(1)打开远程x11选项
vi /etc/ssh/sshd_config
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
(2)安装相关组件
yum install -y xorg-x11-font-utils.x86_64 xorg-x11-server-utils.x86_64 xorg-x11-utils.x86_64 xorg-x11-xauth.x86_64 xorg-x11-xinit.x86_64
(3)在SecureCRT远程机器上安装Xming
Xming 的下载页面:http://sourceforge.NET/projects/xming/
这里下载到Xming-6-9-0-31-setup.exe,双击安装至完成, 运行Xming:
(4)设置SecureCRT转发
SecureCRT-->“连接”-->选择需要的服务器-->右键“属性”:在弹出的对话框中,勾中“连接”“端口转发”“远程/X11”的“转发X11数据包”, 点确定
退出xshell后从新登录,然后再调用virt-manager即可使用图形界面管理kvm虚拟机
(5)报错汇总:
①Unable to initialize GTK: could not open display
virt-manager
Unable to initialize GTK: could not open display
确保有安装xorg-x11-xauth
yum -y install xorg-x11-xauth
②Failed to open "/var/lib/dbus/machine-id"
virt-manager
process 2827: D-Bus library appears to beincorrectly set up; failed to read machine uuid: Failed to open "/var/lib/dbus/machine-id":No such file or directory
See the manual page for dbus-uuidgen tocorrect this issue.
D-Bus not built with -rdynamic so unable toprint a backtrace
确保libvirtd开启状态:
/etc/init.d/libvirtd status
libvirtd is stopped
/etc/init.d/libvirtd start
如果问题依旧,按以下方法处理:
mkdir -p /var/lib/dbus
dbus-uuidgen > /var/lib/dbus/machine-id
③virt-manager出现乱码,解决:
yum install -y dejavu-lgc-sans-fonts
yum groupinstall "Fonts" -y
4)virt-viewer连接虚拟机(需要安装xming)
yum -y install virt-viewer
virt-viewer test
5)给vnc添加密码
添加红色部分
virsh edit test
二.virsh常用命令
1.查看运行的虚拟机
virsh list
2.查看所有的虚拟机(关闭和运行的虚拟机)
virsh list --all
3.连接虚拟机
virsh console 虚拟机的名称
4.退出虚拟机
ctrl+]
5.关闭虚拟机
virsh shutdown 虚拟机的名称
ps:这个时候我在virsh list发现 test02这个虚拟机还是在运行的,并没有关闭。
我们需要安装一个acpid的服务并启动它,什么是ACPI?
ACPI是Advanced Configuration and PowerInterface缩写,高级配置和电源管理接口。
acpid中的d则代表daemon。Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。
Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。
其实,说明了就是通过这个服务来执行电源关闭的动作,这也是为什么我们执行virsh shutdown +域名无法关机的原因。
安装acpi
yum install -y acpid
启动acpi
systemctl start acpid
6.挂起虚拟机
virsh suspend 虚拟机的名称
7.恢复被挂起的虚拟机
virsh resume 虚拟机的名称
8.子机随宿主机启动而启动
virsh autostart 虚拟机的名称
9.取消自动启动
virsh auotstart --disable 虚拟机的名称
10.彻底删除虚拟机
1).强制关闭虚拟机
virsh destroy 虚拟机的名称
2).解除标记
virsh undefine 虚拟机的名称
3).删除虚拟机文件
rm –rf 文件名
11.虚拟机配置文件
virsh edit 虚拟机的名称
vi /etc/libvirt/qemu/虚拟机的名称.xml
12.快照的使用(virsh)
1).注意
注意要使用KVM的快照功能,虚拟机的硬盘一定要是qcow2格式,否则无法使用快照功能。
2).创建快照
virsh snapshot-create-as test test_snap
3).查看快照
virsh snapshot-list test
4).删除快照
virsh snapshot-delecttest test_snap
5).恢复快照(需要关机)
virsh snapshot-reverttest test_snap
14.查看虚拟机配置
virsh dominfo test
15.强制关闭虚拟机
virsh destroy 虚拟机名
16.导出虚拟机配置
virsh dumpxml test >/root/test_dump.xml
17.重启虚拟机
virsh reboot虚拟机名
三.qemu常用命令
1.创建镜像文件
1).创建raw格式镜像文件
qemu-img create -f raw/disk/test.img 10G
2).创建qcow2格式镜像文件
qemu-img create -f qcow2/disk/test.img 10G
2. 查看 QCOW2 镜像文件信息
qemu-img info /disk/test.raw
3. 注意
1).虽然 Sparse File 特性会导致镜像文件的内部块中存在 holes, 但实际上 holes 是不会占用存储空间的, 无论是 RAW(Support Sparse File) 还是QCOW2(Don’t Support Sparse Files), 两者的磁盘利用率相等, 因为物理硬盘的块数量是固定的, 不会受到holes 的影响. 虽说holes 不会影响最终的磁盘使用率, 不过 holes 能够引起某些应用进程的「误解」. 例如: 上面已经举例的 ls 指令, 除此之外, 在 scp RAW 镜像文件时, 会消耗更大的网络 I/O. 同样的, tar RAW 镜像文件时也会消耗更长的时间和 CPU. 这也算是RAW 的一大缺点了, 一般的解决方法就是将 RAW 转换为 QCOW2 之后再进行压缩或传输.
2).Sparse FIle 的优势在于:存储只有在实际需要时, 空间才会被分配. 存储的实际空间被保留了起来, 所以即使在文件系统上显示以及没有足够的可用空间时, 仍然可以创建大文件.
3. 快照的使用(qemu-img)
1).注意
注意要使用KVM的快照功能,虚拟机的硬盘一定要是qcow2格式,否则无法使用快照功能。
2).创建快照
qemu-img snapshot -csnap1 /disk/test.qcow2
3).查看快照
qemu-img snapshot -l /disk/test.qcow2
4).删除快照
qemu-img snapshot -d snap1 /disk/test.qcow2
5).恢复快照
qemu-img snapshot -a snap2 test.qcow2
6).QCOW2 镜像文件转换成 RAW 格式:
qemu-img convert test.qcow2 -O raw test.img
四.克隆虚拟机
1.注意
在克隆虚拟机之前,原来的虚拟机一定要处于关机状态
2.克隆虚拟机
virt-clone -o test -n test_clone -f /data/test_clone.img
3.修改配置、更改VNC端口
五.更改虚拟机配置
1.添加硬盘
1).注意
修改配置文件来添加硬盘,要关闭虚拟机,否则无法正常添加。
2).创建新的硬盘
qemu-img create -f qcow2 /disk/test_add.img 10G
3).修改配置文件
virsh edit test
virsh define /etc/libvirt/qemu/test.xml
4).重启虚拟机
2.添加网卡
1).注意
(1)修改配置文件来添加网卡,要关闭虚拟机,否则无法正常添加。
(2)网卡的MAC地址,可以进行自定义,同时该网卡需要桥接到哪一块KVM网卡上面,我们也是可以选择的。
(3)注意在此我们没有复制address行。那是因为这个配置是和硬盘是类似的。
2).修改配置文件
virsh edit test
virsh define /etc/libvirt/qemu/test.xml
3). 重启虚拟机
3.变更内存
1).注意
修改配置文件来变更内存,要关闭虚拟机,否则无法正常添加。
在kVM的XML配置文件中,内存默认是以KiB为单位的
2).更改配置文件(修改红色数值即可)
virsh edit test
test
8e87fe73-b89b-4034-a5c9-fb64add3d77b
1048576
1048576
1
virsh define/etc/libvirt/qemu/test.xml
3).重启虚拟机
ps:查看kvm版本
/usr/libexec/qemu-kvm -version
ps:查看主机上的CPU 物理情况
numactl --hardware