天天看點

字元模式下建構、使用KVM虛拟化平台

字元模式下建構、使用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,如需轉載請自行聯系原作者

繼續閱讀