字元模式下建構、使用KVM虛拟化平台
環境準備:
KVM虛拟化伺服器(真機或高配虛拟機(記憶體>4G)
作業系統:CentOS 6.5 ==> 關閉 iptables 防火牆、關閉SELinux機制,進入圖形桌面
網卡連接配接:eth0 (VMnet4) ==> 關閉 NetworkManager 服務
主機名:kvmsvr.tarena.com
IP位址:172.30.8.202/24
分區示例:
/boot 200MB、SWAP 8GB、/ 80GB、
/var/ftp 40GB (邏輯卷 /dev/vg_data/lv_data)
一:在KVM伺服器上為CentOS 6.5客戶機提供 YUM 源
1. 安裝、啟用 vsftpd 服務,允許匿名下載下傳
[root@kvmsvr ~]# rpm -ivh /CD光牒挂載點/Packages/vsftpd*.rpm
[root@kvmsvr ~]# service vsftpd restart
[root@kvmsvr ~]# chkconfig vsftpd on
2. 插入CentOS 6.5CD光牒,将其中所有文檔部署到 FTP 目錄
[root@kvmsvr ~]# mkdir -p /var/ftp/pub/iso/centos/6.5/
[root@kvmsvr ~]# cp -rf /misc/cd/* /var/ftp/pub/iso/centos/6.5/
3. 在本機測試,確定 YUM 源可用
[root@kvmsvr ~]# vim /etc/yum.repos.d/centos6.repo
[CentOS-Base]
name=CentOS 6.5 Packages
baseurl=ftp://172.30.8.202/pub/iso/centos/6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@kvmsvr ~]# yum repolist
.. ..
二:安裝 KVM 虛拟化相關軟體、啟用服務
[root@kvmsvr ~]# yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Tools" "Virtualization Platform"
[root@kvmsvr ~]# service libvirtd restart
[root@kvmsvr ~]# chkconfig libvirtd on
三:準備要裝虛拟機的CD光牒鏡像,并且在實體機準備yum源
準備一個目錄存放redhat5.10
[root@localhost /]# mkdir /ISO #用于存放redhat5.10的yum源
[root@localhost /]# mkdir -p /var/ftp/pub/iso/redhat/5.10/
[root@localhost /]# mkdir /data
[root@localhost /]# mount -o loop /ISO/redhat5.10.iso /data #準備5.10的yum源
[root@localhost /]# cp -rf /data/* /var/ftp/pub/iso/redhat/5.10/
[root@localhost /]# umount /data
四:從指令行建立虛拟機(模組化闆機)
準備工作:建立卷組,邏輯卷用于存放建立的虛拟機
建立一個100G大的分區/dev/sda7
[root@localhost /]# pvcreate /dev/sda7
[root@localhost /]# vgcreate vg_data /dev/sda7
建立一個邏輯卷作為redhat5.10虛拟機的安裝位置
[root@localhost /]# lvcreate -L 15G -n redhat5.10 /dev/vg_data
不同裝機方式
***********************************************************
1. 從CD光牒(ISO鏡像檔案)裝新虛拟機
[root@kvmsvr ~]# virt-install \
--name redhat5.10 --vcpus=1 --ram=1024 \
--disk path=/dev/vg_data/redhat5.10 \
--network network=default --cdrom=/ISO/redhat5.10.iso
2. 從指定URL的軟體源裝新虛拟機
--network network=default --location=ftp://172.30.8.202/pub/iso/redhat/5.10
3. 使用本機PXE服務(隔離網段)裝新虛拟機(字元模式)
--graphics none --network bridge=virbr1 --pxe
KVM虛拟化的指令行管理
一:virsh 指令工具的基本操作
virsh //直接進互動模式
virsh nodeinfo //檢視KVM節點(伺服器)資訊
virsh list //列出正在運作的虛拟機
virsh list --all //列出所有虛拟機(包括未啟動的)
virsh dominfo 虛拟機名稱 //檢視指定虛拟機的資訊
virsh start 虛拟機名稱 //将指定的虛拟機開機
virsh reboot 虛拟機名稱 //将指定的虛拟機重新開機
virsh shutdown 虛拟機名稱 //将指定的虛拟機正常關機
virsh destroy 虛拟機名稱 //将指定的虛拟機強制關機(相當于拔電源)
virsh autostart 虛拟機名稱 //将指定的虛拟機設定随KVM自動開機
virsh autostart --disable 虛拟機名稱 //将指定的虛拟機設定随KVM自動開機
二:使用虛拟機的XML描述檔案
1. 為已有的虛拟機改名
1)導出虛拟機 rh5_n1 的XML描述資訊,儲存為 new.xml 檔案
[root@kvmsvr ~]# virsh dumpxml rh5_n1 > new.xml
2)修改 new.xml
[root@kvmsvr ~]# vim new.xml
<domain type='kvm' id='1'>
<name>rhel5_node1</name> //修改為新的虛拟機名稱
<uuid>c33a4aad-c555-48b3-a0a9-893ad0b4775e</uuid> //修改UUID值(可執行uuidgen指令獲得)
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file=‘/data/images/node1.img’/> //因為隻是改名,虛拟磁盤可不變
.. ..
</disk>
.. ..
3)根據 new.xml 建立新的虛拟機
[root@kvmsvr ~]# virsh define new.xml #定義域 rhel5_node1(從 new.xml)
[root@kvmsvr ~]# virsh list --all
Id 名稱 狀态
----------------------------------------------------
1 rh5_n1 啟用
- rhel5_node1 關閉
4)删除原虛拟機的 XML 描述
[root@kvmsvr ~]# virsh destroy rh5_n1 //強制關機 域 rh5_n1 被删除
[root@kvmsvr ~]# virsh undefine rh5_n1 //删除虛拟機定義
域 rh5_n1 已經被取消定義
[root@kvmsvr ~]# virsh list --all //确認删除結果
Id
名稱 狀态
----------------------------------------------------
-
rhel5_node1 關閉
2. 複制虛拟機
1)導出虛拟機 rh5_n1 的XML描述資訊,儲存為 rh5_n2.xml 檔案
[root@kvmsvr ~]# virsh dumpxml rh5_n1 > rh5_n2.xml
2)修改 rh5_n2.xml
[root@kvmsvr ~]# vim rh5_n2.xml
<domain type='kvm' id='1'>
<name>rh5_n2</name> //修改為新的虛拟機名稱
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file=‘/data/images/node2.img’/> //因為複制,應改用其他虛拟磁盤(可複制)
.. ..
.. ..
3)複制虛拟機 rh5_n1 的磁盤檔案
[root@kvmsvr ~]# cp -p /data/images/node1.img /data/images/node2.img
4)根據 rh5_n2.xml 建立新的虛拟機
[root@kvmsvr ~]# virsh define rh5_n2.xml
#定義域 rh5_n2(從 rh5_n2.xml)
三:通路虛拟機控制台
1. virt-viewer 虛拟機名稱 //通路圖形控制台,與 virt-manager 管理方式基本一樣
2. virsh console 虛拟機名稱 //通路指令行控制台,需要登入,目标虛拟機需要做下列調整(啟用ttyS0序列槽終端)
[root@statiton10 ~]# vim /boot/grub/grub.conf
title .. ..
kernel vmlinuz- .. .. console=ttyS0 //啟用序列槽控制台
[root@statiton10 ~]# vim /etc/securetty
在檔案的末尾添加ttyS0 //允許root從此接口登入
[root@statiton10 ~]# reboot //重新開機虛拟機後生效
LVM邏輯卷在虛拟機存儲中的應用和建立虛拟機快照
關于虛拟機網卡的配置
虛拟機建立之後要想和實體機進行通信首先解決網卡問題
(1)橋接模式:虛拟機像一台真實機一樣可以通路和實體機連接配接在同一交換機上的其他實體機,但是容易造成虛拟機和外部實體機的IP位址沖突問題
[root@localhost /]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-br0
DEVICE="br0"
BOOTPROTO="dhcp"
HWADDR="94:DE:80:82:C3:F3"
IPV6INIT="yes"
MTU="1500"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE=bridge
UUID="6a190276-0abb-437c-a388-8944cccc2bd3"
[root@localhost network-scripts]# vim ifcfg-eth0
添加BRIDGE="br0"
[root@localhost network-scripts]# service network restart
然後将虛拟機的網卡改為橋接模式然後虛拟機就可以與外界實體機進行通信了
(2)NAT模式:相當于一個位址轉換,通過實體機的eth0進行位址轉換,虛拟機使用NAT模式,就可以相當于内部網絡通路外部網絡
直接将虛拟機的網卡模式改為NAT模式就行
(3)隔離模式:處于隔離模式隻能是實體機和虛拟機之間的通信,虛拟機不能通路外網。
在虛拟機的圖形界面新添加一個網絡network1最後選擇隔離模式,然後重新開機network1
[root@localhost /]# virsh net-destroy network1
[root@localhost /]# virsh net-start network1
在修改虛拟機的網卡模式時必須處于關機狀态
開機之後選擇network1
檢視和管理虛拟網卡
[root@localhost /]# virsh net-list
名稱 狀态 自動開始 Persistent
--------------------------------------------------
default 活動 yes yes
network1 活動 yes yes
修改network1虛拟網卡的配置資訊
[root@localhost /]# virsh net-edit network1
<network>
<name>network1</name>
<uuid>0e4dd1c9-4871-02bf-cb84-8a8595e388c1</uuid>
<bridge name='network1' stp='on' delay='0' /> #name值對應的是實體機虛拟網卡的名字, #network1對應的虛拟機網卡的名字
<mac address='52:54:00:32:06:4A'/>
<ip address='192.168.4.1' netmask='255.255.255.0'>
</ip>
</network>
進入虛拟終端對虛拟網卡管理
[root@localhost /]# virsh
歡迎使用 virsh,虛拟化的互動式終端。
輸入:'help' 來獲得指令的幫助資訊
'quit' 退出
virsh # net-
net-autostart net-destroy net-info net-start net-uuid
net-create
net-dumpxml net-list net-undefine
net-define net-edit net-name
net-update
修改虛拟機的網卡
[root@localhost /]# virsh edit redhat5.10
<interface type='network'>
<mac address='52:54:00:e6:f2:e8'/>
<source network='network1'/> #通過更改這個值可以選擇虛拟機要連接配接的網卡類型
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
四:給建立好的虛拟機建立快照
建立存放快照的邏輯卷
[root@localhost /]# lvcreate -s -n rhel5.10 (建立存放快照的邏輯卷名) -L +10G /dev/vg_data/redhat5.10(存放子產品虛拟機的邏輯卷名)
[root@localhost 桌面]# virsh dumpxml redhat5.10 > new.xml
[root@localhost 桌面]# uuidgen
5d7a505c-1820-473e-877c-a268bab7c41c
[root@localhost 桌面]# vim new.xml
修改名字,uudi号,快照存放路徑,mac位址避免和模闆虛拟機發生沖突
<name>rhel5.10</name>
<uuid>5d7a505c-1820-473e-877c-a268bab7c41c</uuid>
<source dev='/dev/vg_data/rhel5.10'/>
<mac address='52:54:00:e6:f2:e8'/>
根據修改後的xml檔案生成一個快照虛拟機
[root@localhost 桌面]# virsh define new.xml
注:在建立虛拟機後一定要關閉防火牆,selinux,NetworkManager
然後想使虛拟機和實體機進行通信,就必須設定好網卡的問題,
使用隔離模式時建立虛拟網卡,然後通過virsh net-edit 虛拟網卡名 修改虛拟網卡的IP 位址和網卡名字,然後将虛拟機的網卡和該網卡設定在同一網段
本文轉自 無心低語 51CTO部落格,原文連結:http://blog.51cto.com/fengzhankui/1543741,如需轉載請自行聯系原作者