1. 程式人生 > >linux kvm虛擬機快速構建及磁盤類型

linux kvm虛擬機快速構建及磁盤類型

byte 管理器 creat mage 練習 最大 安裝虛擬機 修改mac地址 shu

KVM命令管理

virsh命令:用來管理各虛擬機的接口命令
查看/創建/停止/關閉。。。
支持交互模式
格式:
virsh 控制指令 [虛擬機名稱] [參數]

[[email protected] 桌面]# virsh nodeinfo(查看虛擬機服務器的cpu信息)
CPU 型號: x86_64
CPU: 2
CPU 頻率: 1900 MHz
CPU socket: 2
每個 socket 的內核數: 1
每個內核的線程數: 1
NUMA 單元: 1
內存大小: 1906912 KiB
[[email protected]

/* */ 桌面]# virsh list --all(列出虛擬機數量,包括關機的)
Id 名稱 狀態
----------------------------------------------------
1 rh6_node07 running
2 rh6_node06 running
- rh6_node05 關閉
- win2008 關閉

[[email protected]

/* */ 桌面]# virsh dominfo rh6_node07(查看虛擬服務器裏的虛擬機配置)
Id: 1
名稱: rh6_node07
UUID: fbf829d8-5bda-49f0-adeb-ddacac73c5ea
OS 類型: hvm
狀態: running
CPU: 1
CPU 時間: 1894.7s
最大內存: 1048576 KiB
使用的內存: 1048576 KiB
Persistent: yes
自動啟動: 禁用
Managed save: no
安全性模式: none

——————————————————————————————————————

KVM軟關機/重啟/開機
virsh shutdown 虛擬機名
virsh reboot 虛擬機名
virsh start 虛擬機名
KVM硬關機(強制斷電)
virsh destroy 虛擬機名

設置虛擬機開機自啟
virsh autostart 虛擬機名
取消虛擬機開機自啟
virsh autostart --disable 虛擬機名

一臺KVM虛擬機的組成
虛擬機的配置文件:
默認位於/etc/libvirt/qemu/虛擬機名
虛擬機的磁盤文件:
默認位於/var/lib/libvirt/images/虛擬機名.img(或者由管理員提前準備,手動指定)

XML描述文件介紹
記錄每個虛擬機的詳細參數
名稱 UUID 內存 CPU 磁盤 。。。
文件位置:cat /etc/libvirt/qemu/rh6_node07.xml
<domain type=‘kvm‘>
<name>rh6_node07</name> (名稱)
<uuid>fbf829d8-5bda-49f0-adeb-ddacac73c5ea</uuid>(uuid值)
<memory unit=‘KiB‘>1048576</memory>
<currentMemory unit=‘KiB‘>1048576</currentMemory>(內存大小)
<vcpu placement=‘static‘>1</vcpu> (cpu數量)
。。。。。。。。


導出/提取虛擬機的配置
virsh dumpxml 虛擬機名 > /root/new.xml
修改導出後的配置
vim /root/new.xml
導入/重新定義後的配置
virsh define /root/nwe.xml
取消定義
virsh undefine 虛擬機名

練習:將虛擬機rh6_node06改為rh6_node01
[[email protected] ~]# virsh dumpxml rh6_node06 > /root/nwe.xml(導出虛擬機配置定向到/root/new.xml)
[[email protected] ~]# vim /root/nwe.xml (修改名字)
<domain type=‘kvm‘ id=‘2‘>
<name>rh6_node01</name>(修改名字)
<uuid>d2e18138-6ec6-45e2-baab-5da0dec1ee97</uuid>(修改uuid,不要相同)
[[email protected] ~]# virsh define /root/nwe.xml (導入虛擬機)

練習:將虛擬機rh6_node06改為rh6_node02
[[email protected] ~]# virsh dumpxml rh6_node06 > /root/nwe.xml(導出虛擬機配置定向到/root/new.xml)
[[email protected] ~]# vim /root/nwe.xml (修改名字)
<domain type=‘kvm‘ id=‘2‘>
<name>rh6_node02</name>(修改名字)
<uuid>d2e18138-6ec6-45e2-baab-5da0dec1ee97</uuid>(修改uuid)
</interface>
<interface type=‘network‘>
<mac address=‘54:52:01:01:06:02‘/>(修改mac地址)
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/>
<source file=‘/var/lib/libvirt/images/rh6_node02.img‘/>(修改硬盤)
[[email protected] ~]# virsh define /root/nwe.xml (導入虛擬機)
[[email protected] images]# cd /var/lib/libvirt/images/
[[email protected] images]# ls
rh6_node05.img rh6_node06.img rh6_node07.img
[[email protected] images]# cp rh6_node06.img rh6_node01.img &(復制被復制的虛擬機的磁盤)
[1] 35752

導出,修改,導入三合一操作
[[email protected] ~]# virsh edit rh6_node06
<domain type=‘kvm‘ id=‘2‘>
<name>rh6_node03</name>(修改名字)
<uuid>d2e18138-6ec8-45e2-baab-5da0dec1ee97</uuid>(修改uuid)
</interface>
<interface type=‘network‘>
<mac address=‘54:52:01:01:06:03‘/>(修改mac地址)
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/>
<source file=‘/var/lib/libvirt/images/rh6_node03.img‘/>(修改硬盤)
[[email protected] images]# cp rh6_node06.img rh6_node03.img &(復制被復制的虛擬機的磁盤)
[1] 35752

[[email protected] ~]# ls /var/lib/libvirt/network/(虛擬系統管理器網卡配置文件)
default.xml private1.xml private2.xml public1.xml public2.xml


克隆虛擬機
virt-clone -o 被克隆的虛擬機 -n 新的虛擬機名 -f 新磁盤保存路徑
[[email protected] opt]# virt-clone -o rh6_node05 -n hydra -f /var/lib/libvirt/images/rh6_node03.img
正在分配 ‘rh6_node03.img‘ | 50 GB 01:39

————————————————————————————————————————————————————

虛擬機快建技術
KVM虛擬機的鏡像管理
主要是針對虛擬機的磁盤管理
——————————————————+
特點/類型 RAW QCOW2 |
KVM默認 是 否 |
I/O效率 高 較高 |
占用空間 大 小 |
壓縮 不支持 支持 |
增量備份 不支持 支持 |
快照 不支持 支持 |
——————————————————+
COW工作原理:
copy on write,寫時復制
直接映射原始盤的數據內容,當原始盤卷有修改時,將被改動的舊數據寫入增量盤
對增量盤的修改不會寫到原始盤

使用qemu-img管理虛擬磁盤
查看磁盤信息:qemu-img info 磁盤路徑
image: rh6_node01.img
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 323M
cluster_size: 65536
backing file: /var/lib/libvirt/images/.rh6_template.img

創建新的獨立的磁盤:qemu-img create -f 磁盤類型(rw/qcw2) 磁盤路勁 磁盤大小
[[email protected] ~]# qemu-img create -f raw /var/lib/libvirt/test1.img 20G(raw類型)
Formatting ‘/var/lib/libvirt/test1.img‘, fmt=raw size=21474836480
[[email protected] images]# qemu-img create -f qcow2 /var/lib/libvirt/images/test2.qcow2 20G(qcow2類型)
Formatting ‘/var/lib/libvirt/images/test2.qcow2‘, fmt=qcow2 size=21474836480 encryption=off cluster_size=65536
創建新的獨立的磁盤(增量/前段):qemu-img create -f qcow2 -b 後端盤路徑 磁盤路徑 大小(大小可省略)

練習:從虛擬機rh6_node05快建新虛擬機rh6_nonde04
準備新磁盤:
[[email protected] images]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/rh6_node05.img /var/lib/libvirt/images/rh6_node03.qcow2
Formatting ‘/var/lib/libvirt/images/rh6_node03.qcow2‘, fmt=qcow2 size=53687091200 backing_file=‘/var/lib/libvirt/images/rh6_node05.img‘ encryption=off cluster_size=65536
準備新配置:
[[email protected] images]# virsh edit rh6_node05(導出,修改,導入三合一操作)
<domain type=‘kvm‘>
<name>rh6_node03</name>(改名字)
<uuid>e1aa2571-22c6-4804-924d-953e8fc7ad2c</uuid>(改uuid)

<driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/>(改磁盤類型type=qcow2)
<source file=‘/var/lib/libvirt/images/rh6_node03.qcow2‘/>(磁盤路勁)

<mac address=‘54:52:01:01:05:56‘/>(改mac地址)

轉換磁盤格式:
qemu-img convert -O 新的類型 被轉換磁盤路徑 新磁盤路徑

練習:使用舊格式磁盤的虛擬機磁盤轉成新格式
[[email protected] images]# qemu-img convert -O qcow2 /var/lib/libvirt/images/rh6_node06.img /var/lib/libvirt/images/rh6_node06.qcow2
調整新磁盤的配置(類型,路徑)
[[email protected] images]# virsh edit rh6_node06
<driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/>(改磁盤類型type=qcow2)
<source file=‘/var/lib/libvirt/images/rh6_node06.qcow2‘/>(磁盤路勁)
根據需要,調整配置後可以把就磁盤刪除
[[email protected] images]# ls
rh6_node03.qcow2 rh6_node05.img rh6_node06.img rh6_node06.qcow2 rh6_node07.img
[[email protected] images]# rm -rf rh6_node06.img

管理磁盤快照:(磁盤類型必須為qcow2)
qcow2快照管理:
為磁盤記錄不同時間點的抓過太備份
(非獨立的文件)
必要時可將虛擬機恢復到指定的快照
基本用法:
-c:創建快照
-l:查看快照
-a:恢復到指定快照
-d:刪除快照
qemu-img snapshot -c 快照名 磁盤路徑
qemu-img snapshot -l 磁盤路徑
qemu-img snapshot -a 快照名 磁盤路徑
qemu-img snapshot -d 快照名 磁盤路徑

————————————————————————————————————

準備模板虛擬機
命令行模式/安裝虛擬機
virt-install --name muban1 --vcpus 1 --raw 1024
--disk path=/var/lib/libvirt/imagesmuban1.qcow2,
format=qzow2 --network=private1 --pxe

初始化設置
預裝軟件處理
軟件包
ip地址
主機名
網卡參數(mac地址)
/etc/udve/rules.d/70-persistent-net.rules(清空)
/etc/sysconfig/network-scripts-eth0
刪除HWADDR UUID

出廠設置
touch /.unconfigured(在/目錄下創建一個文件)

——————————————————————————————————————
guestmount工具
支持離線掛載raw,qcow2格式的虛擬機磁盤
可以在虛擬機關機的情況下。直接修改磁盤中的文檔
方便對虛擬機進行定制,修復,腳本維護

掛載虛擬盤
基本格式:
guestmount -a 磁盤路徑 -i /掛載點
guestmount -a 磁盤路徑 -m 虛擬機分區 /掛載點
[[email protected] ~]# yum -y install libguestfs-tools

—————————————————————————————————————

linux kvm虛擬機快速構建及磁盤類型