常用安装管理
创建虚拟机的桥接网卡,并将原来物理网卡上IP自动添加到桥接网卡上:
1
<code>virsh iface-bridge eth0 br0</code>
输入此命令后,如果没有报错,网络会断开,需要重启网卡,br0就自动添加上了。
如果要删除桥接网卡操作可以使用如下命令:
<code>virsh iface-unbridge br0</code>
不创建虚拟磁盘,一次性创建KVM虚拟机(默认为qcow2磁盘格式,网络为桥接模式,在此前最好安装virt-manager):
2
3
4
<code>virt-</code><code>install</code> <code>--virt-</code><code>type</code> <code>kvm --name CentOS-7-x86_64 --</code><code>ram</code> <code>2048 \</code>
<code> </code><code>-vcpus=1 -s 20 -c </code><code>/vm/iso/CentOS-7-x86_64-DVD-1511</code><code>.iso --hvm \</code>
<code> </code><code>--os-</code><code>type</code><code>=linux -f </code><code>/vm/CentOS-7-x86_64-tmp</code><code>.img --graphics vnc,listen=0.0.0.0 \</code>
<code> </code><code>--noautoconsole</code>
查看镜像信息:
5
6
<code># qemu-img info CentOS-6.5-x86_64.raw</code>
<code> </code>
<code>image: CentOS-6.5-x86_64.raw</code>
<code>file</code> <code>format</code><code>: raw</code>
<code>virtual size: 5.0G (5368709120 bytes)</code>
<code>disk size: 939M</code>
把文件从qcow2格式装换成raw格式(转换之后需要修改对应xml文件):
<code>qemu-img convert -f qcow2 -O raw CentOS-6.img CentOS-6.raw</code>
转换之后需要修改xml中对应的镜像路径,格式。
本地虚拟机克隆
1、首先关闭虚拟机,虚拟机运行状态下无法clone
2、以CentOS-6-x86_64为源镜像,克隆一个新的CS6的镜像,新镜像磁盘为CS-6.raw
<code># virt-clone -o CentOS-6-x86_64 -n CS6 -f /vm/image/CS-6.raw</code>
3. 对比新镜像和源镜像的xml文件,发现自动更新了镜像路径和MAC地址信息,其他不变,同时,新镜像自动加入了虚拟机列表 virsh list --all。
4、启动配置即可。
通过复制配置文件与磁盘文件的虚拟机地址克隆(适用于异机的迁移)
1、备份出需要迁移的虚拟机xml文件
<code>virsh dumpxml CentOS-6-x86_64 > </code><code>/vm/image/CS-6-new</code><code>.xml</code>
2、使用vim编辑修改此xml文件中的name,uuid,mac address 虚拟磁盘路径source file,vnc端口等。
3、复制一份源镜像文件,并重命名为新镜像名称
<code>cp</code> <code>CentOS-6-x86_64.raw CS-6-new.raw</code>
3、重新定义此xml文件:
<code>virsh define </code><code>/vm/image/CS-6-new</code><code>.xml</code>
4、启动虚拟机
<code>virsh start CS-6-new</code>
5、当发生UUID或者mac地址冲突的情况,先修改对应的xml文。启动虚拟机,配置网络并修改mac 地址,和xml文件中信息统一。
6、拷贝xml文件和镜像到另一台宿主机,修改xml文件中的souce file 路径,定义虚拟机并启动:
<code>virsh define </code><code>/vm/CS-6-new</code><code>.xml</code>
7、启动如果报错:
error: Failed to start domain CS-6-new
error: unsupported configuration: guest and host CPU are not compatible: Host CPU does not provide required features: fma, movbe, fsgsbase, bmi1, avx2, smep, bmi2, erms, invpcid
这是由于CPU信息不兼容造成的,可以修改xml的配置文件,使其兼容:
<code>virsh edit CS-6-new</code>
<code> </code><code><cpu mode</code><code>'custom'</code> <code>match=</code><code>'exact'</code><code>> </code>
<code> </code><code><model>qemu64<</code><code>/model</code><code>> </code>
<code> </code><code><feature name=</code><code>'svm'</code> <code>policy=</code><code>'disable'</code><code>/> </code>
<code> </code><code><</code><code>/cpu</code><code>></code>
8、启动虚拟机,配置IP地址,虚拟机迁移完成。
9、配置虚拟机开机自启动:
<code>virsh autostart CS-6-new</code>
如果要禁用自启动:
<code>virsh autostart --disable CS-6-new</code>
重新定义镜像(虚拟机重命名)
1、备份xml文件
<code>virsh dumpxml tomcat-</code><code>test</code> <code>> 1c4g100g.xml</code>
2、修改xml文件中指定的镜像名称,虚拟机名称
<code># vim 1c4g100g.xml</code>
<code><name>1c4g100g<</code><code>/name</code><code>></code>
<code>...</code>
<code><</code><code>source</code> <code>file</code><code>=</code><code>'/kvm/images/1c4g100g.img'</code><code>/></code>
3、修改镜像名称,删除旧的虚拟机配置,添加新的xml:
<code>mv</code> <code>tomcat-</code><code>test</code><code>.img 1c4g100g.img</code>
<code>virsh undefine tomcat-</code><code>test</code>
<code>virsh define 1c4g100g.xml </code>
<code>virsh start 1c4g100g</code>
快照操作 (磁盘类型必须为qcow2格式)
1、创建虚拟机快照
<code>virsh snapshot-create vm1-clone</code>
不指定名称系统会默认命名为一个ID信息,可以通过快照信息查看。
或者指定快照名称:
<code>virsh snapshot-create-as vm1-clone first_snap</code>
2、查看虚拟机快照信息
<code>virsh snapshot-list vm1-clone</code>
3、查看虚拟机磁盘信息
<code>qemu-img info </code><code>/vm-images/vm1-clone</code><code>.img</code>
4、查看当前快照信息
<code>virsh snapshot-current vm1-clone</code>
5、恢复指定的快照
<code>virsh snapshot-revert vm1-clone first_snap</code>
6、删除指定的快照
<code>virsh snapshot-delete vm1-clone first_snap</code>
磁盘扩容
1、这里是对KVM虚拟机磁盘进行扩容,镜像格式为qcow2,对系统的根目录进行扩展,也可以对已有数据的数据盘进行扩展。
在对磁盘进行扩容时,先关闭虚拟机进行克隆备份:
<code>virt-clone -o jenkins-t -n jenkins-t-bak-clone -f </code><code>/data2/images/jenkins-t-bak-clone</code><code>.img</code>
2、对磁盘扩容:
<code>qemu-img resize jenkins-t.img +200G</code>
3、启动虚拟机,查看磁盘容量,显示扩容成功,如果没有变化,需要重启虚拟机:
7
8
<code>fdisk</code> <code>-l</code>
<code>Disk </code><code>/dev/sda</code><code>: 322.1 GB, 322122547200 bytes, 629145600 sectors</code>
<code>Units = sectors of 1 * 512 = 512 bytes</code>
<code>Sector size (logical</code><code>/physical</code><code>): 512 bytes / 512 bytes</code>
<code>I</code><code>/O</code> <code>size (minimum</code><code>/optimal</code><code>): 512 bytes / 512 bytes</code>
<code>Disk label </code><code>type</code><code>: dos</code>
<code>Disk identifier: 0x000d9b2a</code>
4、使用LVM系统工具进行扩展:
首先创建一块新的分区:
fdisk /dev/hda
n
l #选择逻辑分区,如果没有,则首先创建扩展分区,然后再添加逻辑分区(硬盘:最多四个分区P-P-P-P或P-P-P-E)
6 #分区号(从5开始),/dev/hda6
t
6
8e #分区类型8e表示LVM分区
w #写入分区表
partprobe #重读分区表
mkfs.xfs /dev/hda6 #格式化
partx /dev/hda #查看当前硬盘的分区表及使用情况
创建PV,扩容VG,LV
pvcreate /dev/hda6
vgdisplay #查看当前已经存在的VG信息,以存在VG:VolGroup00为例,默认为centos
vgextend VolGroup00 /dev/hda6 #扩展VolGroup00
lvdisplay #查看已经存在的LV信息,以存在LV:LogVol01为例,默认为/dev/centos/root
lvextend –L +200G /dev/VolGroup00/LogVol01 #扩展LV, 如果不使用+ 号,默认为总大小
xfs_growfs /dev/VolGroup00/LogVol01 #执行该重设大小,对于当前正在使用的LogVol01有效,此命令在CS7中使用,如果是CS6及其以下版本,使用 resize2fs /dev/VolGroup00/LogVol01
df –h #查看挂载情况,已经扩容
挂载虚拟磁盘
如果要对虚拟机单独添加一块虚拟磁盘,可以使用如下方式:
创建磁盘,指定磁盘类型.文件存放位置和容量大小.
<code>qemu-img create -f qcow2 </code><code>/data/vm-disk/test1</code><code>.img 300G</code>
2. 将磁盘挂载到虚拟机,指定虚拟机名称,和磁盘路径,默认的挂载磁盘格式为raw,这里由于是qcow2格式,所以需要单独指定:
<code>virsh attach-disk vm-test1 --</code><code>source</code> <code>/data/vm-disk/test1</code><code>.img --driver qemu --subdriver qcow2 --target hdc --persistent</code>
提示: 这里使用的 --persistent 参数会自动修改 虚拟机的xml配置文件,如果是使用的IDE方式,将不支持热插拔,只能先关闭虚拟机,再挂载磁盘。并且指定的磁盘名称不能当前的发生冲突。
也可以直接修改虚拟机的xml配置文件,在磁盘区域添加如下内容:
<code> </code><code><disk </code><code>type</code><code>=</code><code>'file'</code> <code>device=</code><code>'disk'</code><code>></code>
<code> </code><code><driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'qcow2'</code><code>/></code>
<code> </code><code><</code><code>source</code> <code>file</code><code>=</code><code>'/data/vm-disk/test1.img'</code><code>/></code>
<code> </code><code><target dev=</code><code>'hdc'</code> <code>bus=</code><code>'ide'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'drive'</code> <code>controller=</code><code>'0'</code> <code>bus=</code><code>'1'</code> <code>target=</code><code>'0'</code> <code>unit=</code><code>'0'</code><code>/></code>
<code> </code><code><</code><code>/disk</code><code>></code>
如果要卸载磁盘,执行:
<code>virsh detach-disk vm-test1 </code><code>/data/vm-disk/test1</code><code>.img --persistent</code>
3. 虚拟机上格式化磁盘,并挂载:
<code># fdisk -l</code>
<code>Disk </code><code>/dev/sdb</code><code>: 322.1 GB, 322122547200 bytes, 629145600 sectors</code>
<code># mkfs.xfs /dev/sdb</code>
<code># mkdir /data</code>
<code># mount /dev/sdb /data/</code>
4.将磁盘挂载信息写入配置文件:
<code># blkid</code>
<code>/dev/sdb</code><code>: UUID=</code><code>"c0034119-e36e-452d-8b65-4e5eb5ef4f56"</code> <code>TYPE=</code><code>"xfs"</code>
<code>/dev/sda1</code><code>: UUID=</code><code>"a648e395-cd58-4f33-8b4a-7245cbef4801"</code> <code>TYPE=</code><code>"xfs"</code>
<code>/dev/sda2</code><code>: UUID=</code><code>"PaJ9Dg-09L4-FDVU-Fio1-gPp6-Gc40-CicAz4"</code> <code>TYPE=</code><code>"LVM2_member"</code>
<code>/dev/mapper/centos-root</code><code>: UUID=</code><code>"22f84b13-b958-4025-bfb9-91279727ba23"</code> <code>TYPE=</code><code>"xfs"</code>
<code># vi /etc/fstab</code>
<code>#添加如下内容:</code>
<code>UUID=</code><code>"c0034119-e36e-452d-8b65-4e5eb5ef4f56"</code> <code>/data</code> <code>xfs defaults 0 0</code>
本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1915769