1. 程式人生 > >KVM2-使用qcow2管理KVM虛擬機器磁碟

KVM2-使用qcow2管理KVM虛擬機器磁碟

1、建立一個基礎映象檔案

[[email protected]  images]# pwd

/var/lib/libvirt/images              //虛擬機器預設建立的位置

[[email protected]  images]# qemu-img create -f qcow2 rhel6test.img 80G

Formatting  'rhel6base.img', fmt=qcow2 size=85899345920 encryption=off cluster_size=65536 

[[email protected]  images]# vim ~/bin/install-rhel6

[[email protected]  images]# cat ~/bin/install-rhel6

#!/bin/bash

/usr/sbin/virt-install  \

    --vnc \

    --noautoconsole \

    --name=rhel6test \

    --ram=1024 \

    --arch=x86_64 \

    --vcpus=1 \

    --os-type=linux \

    --os-variant=rhel6 \

    --hvm \

    --accelerate \

    --disk=/var/lib/libvirt/images/rhel6test.img  \

    -m 52:54:00:00:01:02 \

    -w bridge=br0 \

    --location=ftp://192.168.3.1/rhel6 \

     --extra-args="ks=ftp://192.168.3.1/ks.cfg"

[[email protected]  images]#

2、安裝系統到映象檔案

[[email protected]]# install-rhel6

Startinginstall...

Retrievingfile vmlinuz...                              | 7.7 MB     00:00 ...

Retrievingfile initrd.img...                           |  60 MB     00:00 ...

Creatingdomain...                                      |    0 B     00:00   

Domaininstallation still in progress. You can reconnect to

theconsole to complete the installation process.

[[email protected]]#

3、基於基礎映象檔案建立增量映象檔案---克隆機器

[[email protected]]# qemu-img create -b rhel6test.img -f qcow2 rhel6testnode1.img

Formatting'rhel6testnode1.img', fmt=qcow2 size=85899345920 backing_file='rhel6test.img'encryption=off cluster_size=65536

[[email protected]]#

4、匯出原始虛擬機器的配置檔案說明

檢視虛擬機器rhel6test的配置資訊:[[email protected] images]# virsh dumpxml rhel6test

將配置資訊作為模板匯出:

[[email protected]]# virsh dumpxml rhel6test > /tmp/rhel6testnode1.xml

5、修改配置檔案,以滿足克隆虛擬機器的要求

[[email protected]]# uuidgen

3b69e07e-95a9-48eb-b95d-52507ad864e0

[[email protected]]# vim /tmp/rhel6testnode1.xml   //一共修改四處

  <name>rhel6testnode1</name>

<uuid>3b69e07e-95a9-48eb-b95d-52507ad864e0</uuid>

      <source file='/var/lib/libvirt/images/rhel6testnode1.img'/>

      <mac address='52:54:00:00:01:03'/>

6、根據配置檔案定義新的克隆虛擬機器

[[email protected]]# virsh define /tmp/rhel6testnode1.xml

附:實現自動建立克隆虛擬機器的指令碼:等同步驟3-6

[[email protected]  ~]# vim bin/clone-rhel6

[[email protected]  ~]# cat bin/clone-rhel6

#!/bin/bash

qemu-img  create -b /var/lib/libvirt/images/rhel6test.img -f qcow2  /var/lib/libvirt/images/rhel6testnode1.img

virsh  dumpxml rhel6test > /tmp/rhel6test.xml

sed  -i '/<name>rhel6test/s/rhel6test/rhel6testnode1/' /tmp/rhel6test.xml

sed  -i "/<uuid>/s/<uuid>.\{36\}/<uuid>$(uuidgen)/"  /tmp/rhel6test.xml

sed  -i "/rhel6test\.img/s/rhel6test\.img/rhel6testnode1\.img/"  /tmp/rhel6test.xml

sed  -i "/mac address/s/00'/03'/" /tmp/rhel6test.xml

virsh  define /tmp/rhel6test.xml

經過優化後的指令碼

實現功能:

1,支援判斷使用者輸入的字元判斷,可用範圍為(1-254)

2,多餘輸出資訊匯入到/dev/null中

3,支援輸出錯誤編碼$?

4,如果需要修改原虛擬機器名,直接修改$BASE_VM的值即可

5,支出輸出資訊[OK]高亮顯示

[[email protected] ~]# cat  bin/clone-rhel6.sh

#!/bin/bash

IMG_DIR=/var/lib/libvirt/images           //定義變數,虛擬機器檔案存放的位置

BASE_VM=rhel6test                    //定義變數,基礎虛擬機器的名字

E_NOINPUT=65                          //定義輸出錯誤編碼

E_NOTNUM=66

E_OUT_OF_RANGE=67

E_VM_EXISTS=68

read -p "please input a vm  number(0-254): " NEW_VMNU                //互動式輸入增量虛擬機器的編號

if [ -z $NEW_VMNU ]; then                                  //判斷編號是否為空

   echo "You must input a number."

   exit $E_NOINPUT

fi

if [ $NEW_VMNU != $(echo  "$NEW_VMNU*1" | bc) ]; then         //判斷編號是否為字元

   echo "You must input a number."

   exit $E_NOTNUM

fi

if [ $NEW_VMNU -lt 1 -o $NEW_VMNU -gt  254 ]; then          //判斷編號是否超出了1-254範圍

   echo "You must input a number between 1 and 254"

   exit $E_OUT_OF_RANGE

fi

NEW_VM=${BASE_VM}node${NEW_VMNU}                    //定義增量虛擬機器的名字

if [ -e $IMG_DIR/$NEW_VM.img ]; then                 //判斷增量虛擬機器編號是否重複

   echo "$NEW_VM already exists"

   exit $E_VM_EXISTS

fi

echo -en "creating disk  image......\t\t"         //-en選項,不換行輸出,為了連線下面的ok

qemu-img create -b  $IMG_DIR/$BASE_VM.img -f qcow2 $IMG_DIR/$NEW_VM.img &> /dev/null

echo -e "\e[32m[OK]\e[0m"                         //高亮顯示輸出內容:[ok]

echo                                              //echo後面不接選項和引數,輸出空行

virsh dumpxml $BASE_VM  > /tmp/$BASE_VM.xml            //生成克隆虛擬機器XML檔案

MAC_ADDR=$(echo  "obase=16;$NEW_VMNU" | bc)            //定義mac地址後兩位數字

sed -i  "/<name>$BASE_VM/s/$BASE_VM/$NEW_VM/" /tmp/$BASE_VM.xml          //XML檔案需要修改的四處

sed -i  "/<uuid>/s/<uuid>.\{36\}/<uuid>$(uuidgen)/"  /tmp/$BASE_VM.xml

sed -i  "/$BASE_VM\.img/s/$BASE_VM\.img/$NEW_VM\.img/" /tmp/$BASE_VM.xml

sed -i "/mac  address/s/00'/$MAC_ADDR'/" /tmp/$BASE_VM.xml

virsh define  /tmp/$BASE_VM.xml &> /dev/null               //定義新的虛擬機器

echo "$NEW_VM created successful  !!!"

[[email protected] ~]#

相關推薦

KVM2-使用qcow2管理KVM虛擬機器磁碟

1、建立一個基礎映象檔案 [[email protected]  images]# pwd /var/lib/libvirt/images              //虛擬機器預設建立的位置 [[email protected]  images]#

KVM虛擬機器磁碟空間擴容

一,環境說明: add_disk.img磁碟映像檔案原本是2G大小。   二,在宿主機上操作對虛擬機器磁碟空間擴容 # virsh blockresize --domain template --path /iptv/src/add_disk.img --size 4G

更改KVM虛擬機器磁碟大小

之前建立的一個KVM虛擬機器最近發現某一個分割槽空間快用完了,參照部落格 http://blog.csdn.net/ubuntu64fan/article/details/12385707 熟練的將虛擬機器shutdown後準備擴容。因為虛擬機器系統涉及到公司資訊,就不截

Virsh管理kvm虛擬機器認證和加密

前提:使用virsh管理kvm虛擬機器的時候出現需要使用密碼的情況 [[email protected]1 ~]# virsh list --all Please enter you

一次 KVM 虛擬機器磁碟佔滿的排查過程

# 一次 KVM 虛擬機器磁碟佔滿的排查過程 KVM 虛擬機器系統為 CentOS,檔案系統為 XFS。 現象如下: 1. 使用 `df -h` 命令發現磁碟剩餘空間為30k(總大小為30G),使用 `df -i` 發現 inode 可用數量為 800(總數為18w,正常狀態為1000w+) 2. 虛擬機

KVM虛擬機器安裝、管理

一、詳解1、虛擬化產品對比表2、KVM簡介KVM全稱Kernel-based Virtual Machine,翻譯過來是基於核心的虛擬機器,實際它是Linux核心的一個模組。該模組將Linux變為一個Hypervisor,由Quramnet開發,支援x86、s390、Powerpc等CPU。它使用Linux自

kvm虛擬機器增加磁碟

一,virsh attach-disk子命令 [[email protected] src]# virsh help attach-disk NAME attach-disk - attach disk device   SYNOPSIS attach

磁碟(根和資料放在不同分割槽)建立第一臺kvm虛擬機器、克隆虛擬機器

一,建立第一臺虛擬機器( 此步是在宿主機系統上進行的操作; 目的是作為克隆虛擬機器的模板): 1,虛擬機器磁碟規劃 磁碟A:大小260G 分割槽規劃,swap分割槽2048M,boot分割槽300M,根分割槽60G(lvm+xfs),資料分割槽(

使用qemu-img管理虛擬機器磁碟映象(建立虛擬機器虛擬機器快照)

一臺虛擬機器的核心就是一個磁碟映象,這個映象可以理解成虛擬機器的磁碟,裡面有虛擬機器的作業系統和驅動等重要檔案。本文主要介紹建立虛擬機器的一般過程。 建立虛擬機器映象 要在一臺host上跑起一個虛擬機器一般需要兩個步驟: 第一步:建立虛擬機器映象    

Linux下KVM虛擬機器基本管理及常用命令

  說明:可能有重複 一、KVM的基本管理 1、檢視KVM虛擬機器配置檔案 #Kvm虛擬機器預設配置檔案位置 [[email protected] qemu]# pwd /etc/libvirt/qemu [[email protected] qe

kvm虛擬機器管理(建立、連線)

建立虛機、遠端管理kvm虛機、virsh命令列下管理虛機、、kvm通過virsh console 連入虛擬機器   一、建立虛機 1)開啟虛擬化管理器   2)選擇ISO安裝

kvm熱新增磁碟,且停機重啟kvm虛擬機器,檔案資訊不丟失

筆者centos7.5系統參考:http://www.cnblogs.com/pigdragon/p/9506771.html#宿主機上建立一個磁碟檔案qemu-img create -f qcow2 test2_add01.qcow2 5G#宿主機上熱新增該磁碟到對應虛擬主機中去virsh attach-d

KVM虛擬機器centos7磁碟擴容

1、增加映象磁碟容量 qemu-img resize cos7-86.img +100G 2、重啟虛擬機器 virsh shutdown cos7-86 virsh start cos7-86 3、進去虛擬機器檢視分割槽 fdisk -l 4、分割槽並修

kvm虛擬化學習筆記(四)之kvm虛擬機器日常管理與配置

KVM虛擬機器的管理主要是通過virsh命令對虛擬機器進行管理。 1. 檢視KVM虛擬機器配置檔案及執行狀態 (1) KVM虛擬機器預設配置檔案位置: /etc/libvirt/qemu/ autostart目錄是配置kvm虛擬機器開機自啟動目錄。 (2) virsh命令幫助 # virsh -help

Centos7.4安裝kvm虛擬機器(使用virt-manager管理

1)檢查cpu是否支援虛擬化 [[email protected] ~]# grep vmx /proc/cpuinfo 如果有vmx資訊輸出,就說明支援VT;如果沒有任何的輸出,說明你的cpu不支援,將無法使用KVM虛擬機器。 2)確保BIOS裡開啟虛擬化功能,即檢視是否載入KVM模組 [[e

kvm中的虛擬機器磁碟擴容

參考連結: http://blog.sina.com.cn/s/blog_967817f20102v2a6.html http://blog.chinaunix.net/uid-20767811-id-5015333.html?_t=t 測試用的kvm虛擬機器磁碟空間只有2

運維之系統服務篇------1. KVM構建及管理 、 virsh控制工具 、 映象管理虛擬機器快建技術

ONE DAY 1.Virsh 2.本機與虛擬機器搭建yum庫 3.安裝KVM虛擬化服務平臺 4.快速搭建虛擬機器 5.搭建教學環境 TWO DAY 1.釋出網路YUM源 2.擴充套件的10個應用(目錄----許可權的數值--------histroy-----du----

KVM虛擬機器管理命令使用方法

virsh相關命令 1.安裝libvirt yum install kvm virt-* libvirt 2.檢查是否安裝成功: lsmod |grep kvm #virsh -c qemu:///system list #virsh list #virsh li

通過python-libvirt管理KVM虛擬機 源碼

copyto file erp idt sdn restrict oar source ffline 版本:0.9.13 libvirt庫可真是大,先看看該版本裏面都有哪些類和方法,驗證過的方法我會用O開頭,|開頭的標示還沒親自驗證過。 [python] vie

使用libvirt工具棧管理kvm虛擬

安裝介質 暫停 設備模型 xtra network eth 必須 CI 一個 libvirt介紹 Libvirt是一個軟件集合,便於使用者管理虛擬機和其他虛擬化功能,比如存儲和網絡接口管理等等。Libvirt概括起來包括一個API庫、一個 daemon(libvirtd)和