天天看點

KVM日常管理-克隆-快照-磁盤擴容-虛拟磁盤挂載

常用安裝管理

建立虛拟機的橋接網卡,并将原來實體網卡上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 &gt; </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>&lt;cpu mode</code><code>'custom'</code> <code>match=</code><code>'exact'</code><code>&gt;                                 </code>

<code>        </code><code>&lt;model&gt;qemu64&lt;</code><code>/model</code><code>&gt;                                        </code>

<code>        </code><code>&lt;feature name=</code><code>'svm'</code> <code>policy=</code><code>'disable'</code><code>/&gt;                       </code>

<code>    </code><code>&lt;</code><code>/cpu</code><code>&gt;</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>&gt; 1c4g100g.xml</code>

2、修改xml檔案中指定的鏡像名稱,虛拟機名稱

<code># vim 1c4g100g.xml</code>

<code>&lt;name&gt;1c4g100g&lt;</code><code>/name</code><code>&gt;</code>

<code>...</code>

<code>&lt;</code><code>source</code> <code>file</code><code>=</code><code>'/kvm/images/1c4g100g.img'</code><code>/&gt;</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>&lt;disk </code><code>type</code><code>=</code><code>'file'</code> <code>device=</code><code>'disk'</code><code>&gt;</code>

<code>      </code><code>&lt;driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'qcow2'</code><code>/&gt;</code>

<code>      </code><code>&lt;</code><code>source</code> <code>file</code><code>=</code><code>'/data/vm-disk/test1.img'</code><code>/&gt;</code>

<code>      </code><code>&lt;target dev=</code><code>'hdc'</code> <code>bus=</code><code>'ide'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/disk</code><code>&gt;</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

上一篇: Python Scapy ARP