虚拟化之KVM

目录

一、安装
    1.1、先确认CPU是否支持虚拟化
    1.2、安装KVM及相关工具包
    1.3、启动libvirtd并设置为开机启动
    1.4、创建磁盘
    1.5、开始安装虚拟机

二、虚拟机操作
    2.1 虚拟机启停操作
    2.2 虚拟机网卡操作
    2.3 虚拟机快照
    
三、获取帮助
    3.1 获取所有命令帮助
    3.2 获取子命令帮助

一、安装

1.1、先确认CPU是否支持虚拟化

intel的CPU虚拟化技术是vmx,AMD的CPU是svm:

[root@localhost ~]# grep -E "vmx|svm" /proc/cpuinfo
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep

有输出结果,表示你的CPU支持虚拟化

1.2、安装KVM及相关工具包

[root@localhost ~]# yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install

1.3、启动libvirtd并设置为开机启动

libvirtd进程会创建一个桥接的网上virbr0,而且IP地址是192.168.122.1

[root@localhost ~]# systemctl  start libvirtd
[root@localhost ~]# systemctl  enable  libvirtd
[root@localhost ~]# ifconfig  virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:cb:ca:b0  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

下面的是为虚拟机分配IP地址的服务:

[root@localhost ~]# ps -aux | grep dns
nobody     2877  0.0  0.0  15552   888 ?        S    13:06   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       2878  0.0  0.0  15524   180 ?        S    13:06   0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root       4546  0.0  0.0 112664   980 pts/0    S+   13:29   0:00 grep --color=auto dns

1.4、创建磁盘

[root@llocalhost ~]# qemu-img create -f qcow2 /opt/CentOS-7-x86_64.qcow2 10G #创建一个格式为qcow2大小为10G的磁盘
Formatting '/opt/CentOS-7-x86_64.raw', fmt=qcow2 size=10737418240 

注意:常用的磁盘格式有raw和qcow2。raw是直接从物理磁盘上划一块空间出来,创建磁盘时设定的磁盘是10GB,生成出来的磁盘文件就是10GB,raw格式的磁盘比较占用宿主机的资源,但是它的性能相较于qcow2要好。而qcow2格式,只是设定了一个逻辑大小为10GB,使用磁盘空间最多不能超过10GB,,生成的磁盘文件开始只有100KB,这个文件的大小 ,会随着你的使用增大,但不会超过10GB。

1.5、开始安装虚拟机

[root@LOCALHOST imgs]# virt-install --virt-type=kvm --name=openstack-load_balancing-node1 --ram=4096 --vcpus=1 --cdrom=/system/iso/CentOS-7-x86_64-Minimal-1511.iso --disk path=/system/imgs/openstack-load_balancing-node1.qcow2,size=100,format=qcow2 --network bridge=br1 --graphics vnc,listen=0.0.0.0,port=60000 --noautoconsole

#参数解释
--virt-type=kvm     指定虚拟机类型为KVM

--name=openstack-load_balancing-node1   指定虚拟机名称

--ram=4096          指定内存为4096M,默认单位是M

--vcpus=1           指定虚拟CPU个数为1个

--cdrom=/system/iso/CentOS-7-x86_64-Minimal-1511.iso    指定安装虚拟机用的镜像

--disk path=/system/imgs/openstack-load_balancing-node1.qcow2,size=100,format=qcow2     指定虚拟磁盘,切记要加上size和format,否则安装系统时会出现磁盘仅为194K,不能安装系统的情况

--network bridge=br1    桥接到宿主机的br1网卡

--graphics vnc,listen=0.0.0.0,port=60000    使用VNC远程桌面连接,操作安装系统用,端口为60000;VNC默认的端口为5900,有时可能会被运营商禁用,这时你需要换一个端口试试。

--noautoconsole     不要自动尝试连接到客户端控制台

注意:要想为虚拟机添加多块网卡,就需要指定多个“--network” 参数。

命令执行成功,如下图:

image.png

这时就可以用VNC连接图形界面,进行安装了:


image.png
image.png

进入安装界面,将CentOS 7无规则的网卡命名方式修改为eth0 、eth1这样,需在上述界面中按上方向键选中“Install CentOS Linux 7”,然后按“Tab”键进行编辑,给内核传参,加入“net.ifnames=0 biosdevname=0”

image.png

接下来的系统安装步骤就不再赘述了。

二、虚拟机操作

2.1 虚拟机启停操作

查看: virsh list --all
开启: virsh start openstack-load2
重启:virsh reboot openstack-load2
关机:virsh shutdown openstack-load2
删除:virsh undefine openstack-load2
随宿主机自启动:virsh autostart openstack-load2
恢复:virsh define /etc/libvirtd/qemu/openstack-load2.xml

注意:要想恢复虚拟机,必须保证虚拟机配置文件中<source file='/system/imgs/openstack-load2.qcow2'/> 定义的虚拟磁盘是存在的。

2.2 虚拟机网卡操作

  • 列出指定虚拟机的网卡:

命令:virsh domiflist openstack-compute1

  • 动态添加虚拟机网卡:

命令:virsh attach-interface --domain openstack-compute1 --type bridge --source br2 --model virtio --persistent --config
注意:

  • --domain 后面可以跟虚拟机名称或者虚拟机ID。
  • --persistent 实时更改并将修改写入配置文件中
  • --config 下一次启动时生效
  • 移除虚拟网卡

命令:virsh detach-interface openstack-load1 --type bridge --mac 52:54:00:0f:0d:df
注意:虚拟机网卡MAC地址可以通过virsh domiflist openstack-load1命令获取

2.3 虚拟机快照

  • 列出指定虚拟的所有快照:

命令:virsh snapshot-list openstack-load1

  • 为指定虚拟机创建快照:
    • 命令格式: virsh snapshot-create-as 虚拟机名 快照别名

命令:virsh snapshot-create-as openstack-load1 openstack-load1-base-180324

  • 列出指定虚拟机的快照

命令:virsh snapshot-list openstack-compute1

  • 查看虚拟机当前快照:

命令:virsh snapshot-current openstack-load1

  • 为虚拟机恢复至指定快照
[root@LOCALHOST ~]# virsh snapshot-revert --help
  NAME
    snapshot-revert - Revert a domain to a snapshot

  SYNOPSIS
    snapshot-revert <domain> [<snapshotname>] [--current] [--running] [--paused] [--force]

  DESCRIPTION
    Revert domain to snapshot

  OPTIONS
    [--domain] <string>  domain name, id or uuid
    [--snapshotname] <string>  snapshot name
    --current        revert to current snapshot
    --running        after reverting, change state to running
    --paused         after reverting, change state to paused
    --force          try harder on risky reverts

命令:virsh snapshot-revert openstack-load1 openstack-load1-base-180324 --running
- openstack-load1:虚拟机名称
- openstack-load1-base-180324 是快照名称,可通过virsh snapshot-list 虚机名查看
- --running 表示恢复快照后,将虚拟机状态改为正在运行

2.4 虚拟机改名

1)终端命令行下查看虚拟机

[root@kvm-server ~]# virsh list
Id Name State
----------------------------------------------------
4 vmserver004 running
5 vmserver003 running
6 vmserver005 running

2)关闭虚拟机

[root@kvm-server ~]# virsh shutdown vmserver003

3)导出xml文件

[root@kvm-server ~]# cd /etc/libvirt/qemu
[root@kvm-server qemu]# ls
networks vmserver003.xml vmserver004.xml vmserver005.xml
[root@kvm-server qemu]# virsh dumpxml vmserver003 > test-huanqiu.xml
[root@kvm-server qemu]# ls
networks test-huanqiu.xml vmserver004.xml vmserver005.xml

4)编辑test-huanqiu.xml文件,将里面的vmserver003全部替换成test-huanqiu

[root@kvm-server qemu]# sed -i 's/vmserver003/test-huanqiu/g' test-huanqiu.xml
  1. 重定义
[root@kvm-server qemu]# virsh undefine vmserver003
[root@kvm-server qemu]# virsh define test-huanqiu.xml

若有修改img也将文件重命名下如:
[root@kvm-server qemu]# vim test-huanqiu.xml # 将里面使用的img镜像文件名也可以重命名(文件里有镜像文件路径)

6)启动虚拟机

[root@kvm-server qemu]# virsh start test-huanqiu

7) 重命名后查看

[root@kvm-server qemu]# virsh list
Id Name State
----------------------------------------------------
4 vmserver004 running
5 test-huanqiu running
6 vmserver005 running

2.5 KVM虚拟机硬件配置修改、磁盘扩展以及主机迁移

1,KVM虚拟机硬件配置修改
关机,virsh edit host 编译虚拟机配置文件,进行内存 、cpu参数修改。修改以后重启虚拟机加载最新配置。

2,磁盘扩展
由于非专业搞虚拟化,这里只用于测试环境部署使用。更为专业的磁盘扩展请参考其他资料。这里以linux 66主机的qcow2为例扩展。操作步骤:
(1)关机
(2)扩展
qemu-img resize linuxt66.qcow2 +5G
(3)启动并登录服务器扩展磁盘

3,主机迁移
思路:
(1)导出xml文件
(2)转移虚拟机磁盘文件
(3)新服务器重新定义主机 virsh define host
(4)启动

三、获取帮助

3.1 获取所有命令帮助

命令:virsh --help

3.2 获取子命令帮助

命令: virsh 子命令 --help

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容