KVM创建和调整虚拟机

CentOS6.5 x64上安装KVM功能模块步骤操作都以root用户进行。

查看是否支持虚拟技术

cat /proc/cpuinfo | egrep 'vmx|svm'  

关掉networkmanager,因为这个会导致虚拟网卡配置冲突

service NetworkManager stop
chkconfig --del NetworkManager

关掉selinux

修改/etc/selinux/config 文件
SELINUX=enforcing改为SELINUX=disabled

启动虚拟化服务并设置开机启动

service libvirtd start
chkconfig --level 3 libvirtd on 

检查是否可以使用kvm模块

lsmod | grep kvm
kvm_intel              54285  9 
kvm                   333172  1 kvm_intel

配置桥接网卡(如果只需要NAT可以不做)

进入网卡配置目录

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0

将eth0的网卡配置和br0的网卡配置修改为如下内容:

[root@test02 network-scripts]# cat ifcfg-eth0 
DEVICE=eth0
HWADDR=BC:EE:7B:9A:5E:91
TYPE=Ethernet
UUID=a257d75d-072c-4eac-8daa-b131324fff52
ONBOOT=yes
NM_CONTROLLED=yes
#BOOTPROTO=static
#IPADDR=192.168.0.12
#NETMASK=255.255.255.0
#GATEWAY=192.168.0.1
DNS1=8.8.8.8
BRIDGE=br0

[root@test02 network-scripts]# cat ifcfg-br0 
DEVICE=br0
HWADDR=BC:EE:7B:9A:5E:91
UUID=a257d75d-072c-4eac-8daa-b131324fff52
ONBOOT=yes
TYPE=Bridge
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.0.12
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8

配置完成后 执行
service network restart 即可看到效果

注:
1.DNS服务器配置随意
2.br0是虚拟网卡,libvirt是安装这个软件后出来的
3.实体网卡去掉相关ip属性,如BOOTPROTO IPADDR NETMASK GATEWAY,虚拟网卡将这些属性补充到自己的网卡配置文件里面去,但其他配置一律不变动,相当于br0变成实体网卡了,但只是相当于而已。
3.虚拟网卡需要将TYPE改为Bridge,证明是使用桥接模式。

安装虚拟机

创建虚拟机磁盘镜像文件

创建磁盘文件不能太小,不然会coredump。
qcow2格式是kvm支持的标准格式,raw格式为虚拟磁盘文件通用格式。有测试数据表明raw格式的I/O性能略高于qcow2格式,但是在加密,容量,快照方面qcow2格式有优势

qemu-img create -f qcow2 test.qcow2 20G  //建立qcow2格式磁盘文件
qemu-img create -f raw test.raw 20G      //建立raw格式磁盘文件
qemu-img info test.qcow2                 //查看已经创建的虚拟磁盘文件

创建并安装虚拟机

以下是ubuntu为例,ubuntu 14

#!/bin/bash
virt-install --name ubuntu \
--boot network,cdrom,menu=on \
--ram 512 --vcpus=1 \
--os-variant=ubuntuquantal \
--cdrom=/app/ftp_data/team/public/system_iso/ubuntu-14.04-desktop-i386.iso \
--disk path=/app/kvm/images/centos.qcow2,size=10,format=qcow2,bus=virtio \
--bridge=br0,model=virtio --keymap=en-us \
--vnc --vncport=5910 --vnclisten=0.0.0.0

以下是centos 6.5为例

cat vir_centos.sh 
#!/bin/bash
virt-install --name centos6.5x64 \
--boot network,cdrom,menu=on \
--ram 512 --vcpus=1 \
--os-variant=rhel6 \
--cdrom=/app/ftp_data/team/public/system_iso/CentOS-6.5-x86_64-bin-DVD1.iso \
--disk path=/app/ftp_data/team/public/system_iso/another_CentOS-6.5-x86_64-bin-DVD1.iso,device=cdrom \
--disk path=/app/kvm/images/centos.qcow2,size=10,format=qcow2,bus=virtio \
--bridge=br0,model=virtio --keymap=en-us \
--vnc --vncport=5911 --vnclisten=0.0.0.0

查看 os-variant 都有哪些代号

virsh-install --os-variant list
osinfo-query os 

注:
1.disk属性就是指虚拟机使用哪一个磁盘镜像文件作为存储地方,指定刚才创建的镜像文件位置即可,size=10,format=qcow2,bus=virtio分别是指大小,格式(跟镜像格式一致),磁盘总线类型(指Value can be ’ide’, ’scsi’, ’usb’, ’virtio’ or ’xen’,virtio是专门为kvm制定的bus,比较常用),大小需要比镜像文件大小要小,相当于镜像是容器,这个disk是里面的水,水太多就溢出了。
2.bridge=br0,model=virtio --keymap=en-us分别指网卡使用,网卡模式即驱动模式,和键盘制式,桥接模式都使用br0,而虚拟机需要使用virtio这个驱动才能使用虚拟网卡,这个虚拟网卡驱动在linux下支持很好,在windows下支持一般,键盘制式如果不指定的话会出现键位错乱的情况,一般我们使用英式。
3.安装centos6.5的时候我使用了2次disk,原因是因为centos6.5的安装盘启动引导安装有问题,会出现无法查找到安装源的情况,所以特地加载多一个iso,一个作为启动使用,一个作为安装源使用,作为安装源使用的时候是使用磁盘格式存储。
4.vnc相关配置,这个vnc如果配置了的话是virt-tools组件自带的,无需要额外安装vnc服务端,默认绑定127.0.0.1,这里将其改为 0.0.0.0 以便可以通过外部连接,每一台的虚拟机的端口都不能一致,一致就会冲突而造成无法启动安装。
5.如果无须使用图形界面安装,virt-install默认是支持文本模式安装的。

qcow2扩容

安装必备

sudo apt-get install libguestfs-tools

备份文件

sudo virsh shutdown vm-gitlab6
sudo cp /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1.qcow2 /var/lib/libvirt/images/vm-gitlab6/ubuntu-kvm/vm-gitlab6-img1-back.qcow2  

查看虚机分区大小

sudo virt-df -h vm-gitlab6-img1.qcow2
W: kvm binary is deprecated, please use qemu-system-x86_64 instead
Filesystem                                Size       Used  Available  Use%
vm-gitlab6-img1.qcow2:/dev/sda1            18G       1.1G        16G    6%

创建新的镜像文件vm-gitlab6-img1-big.qcow2,给40G大小(要求不低于30G)

sudo qemu-img create -f qcow2 vm-gitlab6-img1-big.qcow2 40G

下面就是关键的虚拟机扩容

sudo virt-resize --expand /dev/sda1 vm-gitlab6-img1.qcow2 vm-gitlab6-img1-big.qcow2

用vm-gitlab6-img1-big.qcow2替换vm-gitlab6-img1.qcow2即可。
启动虚拟机

sudo virsh start vm-gitlab6  

如果一切正常,原来那个vm-gitlab6-img1-back.qcow2就可以删除了。一般不会翻车。翻车就把备份拿出来。

shrink压缩虚拟机
如果新虚拟机文件过大,用下面的命令转存一下,就可以缩小虚拟机文件大小(不是分区大小)。

sudo qemu-img convert -O qcow2 vm-gitlab6-img1-big.qcow2 vm-gitlab6-img1-shrink.qcow2  

最后用vm-gitlab6-img1-shrink.qcow2替换vm-gitlab6-img1.qcow2即可。

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

推荐阅读更多精彩内容