1. 程式人生 > >部署kvm虛擬化平臺及功能管理

部署kvm虛擬化平臺及功能管理

filesyste hostname rm -rf 格式 undefined ext4 ror 允許 情況

公司部分Linux服務器利用率不高,為充分利用這些Linux服務器,可以部署KVM,在物理機上運行多個業務系統

在運行Nginx的服務器上部署KVM,然後在虛擬機上運行Tomcat

KVM虛擬化架構
KVM模塊直接整合在Linux內核中

技術分享圖片

主機要求
采用CentOS 6.5 x86_64
開啟CPU虛擬化支持

安裝方式

全新安裝,選擇虛擬化選項


設置KVM網絡

采用橋接模式


KVM圖形化管理

創建存儲池

創建存儲卷

創建虛擬機

安裝虛擬機操作系統

-

在安裝操作系統的時候,選擇桌面安裝,並選擇“現在自定義”,下一步之後選擇“虛擬化”,並勾選右側的所有功能。但是如果安裝系統的時候沒有選擇也沒關系,可以使用yum安裝

[root@centos1 /]# rm -rf /etc/yum.repos.d/*
[root@centos1 /]# vim /etc/yum.repos.d/index.repo
[root@centos1 /]# yum -y install qemu-kvm.x86_64
[root@centos1 /]# vim /etc/yum.repos.d/index.repo
[root@centos1 /]# mount /dev/cdrom /media/
[root@centos1 /]# yum -y install qemu-kvm.x86_64
[root@centos1 /]# yum -y install qemu-kvm-tools.x86_64
[root@centos1 /]# yum -y install python-virtinst.noarch
[root@centos1 /]# yum -y install qemu-img.x86_64
[root@centos1 /]# yum -y install bridge-utils.x86_64
[root@centos1 /]# yum -y install libvirt
[root@centos1 /]# yum -y install virt-manager
驗證cpu是否支持虛擬化,如果有輸出代表沒問題.
[root@centos1 /]# cat /proc/cpuinfo | grep vmx
然後檢查kvm模塊是否安裝好
[root@centos1 /]# lsmod | grep kvm

-
設置kvm網絡
在libvirt中運行kvm網絡有兩種方法:nat和bridge,默認是nat(用戶模式),用戶模式可以訪問外網,但是無法從外部訪問虛擬機網絡,所以用的不是很多,一般做的服務器都需要外網的訪問,所有多數情況采用橋接模式(bridge),這種模式允許虛擬機像一臺獨立的主機一樣擁有網絡,外部的機器可以直接訪問到虛擬機,下面以橋接模式為例:
修改網卡配置文件

[root@centos1 /]#  vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE="br0"
[root@centos1 /]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
[root@centos1 /]# rm -rf /etc/udev/rules.d/70-persistent-net.rules 
[root@centos1 /]# reboot

如果重啟服務不生效那麽重啟電腦

因為新增加了一塊硬盤所以去添加分區,分區具體流程不演示
[root@centos1 /]# fdisk /dev/sdb
格式化分區
[root@centos1 /]# mkfs -t ext4 /dev/sdb1
查看
[root@centos1 /]# fdisk -l
同於存儲之後創建的虛擬機。
[root@centos1 /]# mkdir -p /data_kvm/store
將磁盤掛載到store
[root@centos1 /]# mount /dev/sdb1 /data_kvm/
[root@centos1 /]# cd /data_kvm/
[root@centos1 /data_kvm/]# mkdir store
在創建一個用於存放鏡像的
[root@centos1 /data_kvm/]# mkdir iso
打開圖形化管理虛擬裏的軟件進行管理
[root@centos1 /]# virt-manager

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

-
kvm功能管理

查看命令幫助
[root@centos1 data_kvm] virsh -h

-

查看KVM配置文件存放目錄
[root@centos1 data_kvm]#ls /etc/libcirt/qwmu
-

autostart  networks centos6.xml

-

查看虛擬機狀態
[root@centos1 data_kvm]# virsh list --all
-
 Id    Name                           State
-
 2     centos6                        running

-

首先要開啟acpid服務安裝並運行在執行開機關機

[root@centos1 data_kvm]# virsh shutdown centos6
Domain centos6 is being shutdown

[root@centos1 data_kvm]# virsh start centos6
error: Domain is already active

-

強制系統關閉電源
[root@centos1 data_kvm]# virsh destroy centos6
Domain centos6 destroyed

-

通過配置文件啟動虛擬機
[root@centos1 data_kvm]# virsh create /etc/libvirt/qemu/centos6.xml 
Domain centos6 created from /etc/libvirt/qemu/centos6.xml

查看

[root@centos1 data_kvm]# virsh list --all
 Id    Name                           State
-
 3     centos6                        running

-

掛起虛擬機

[root@centos1 data_kvm]# virsh suspend centos6
Domain centos6 suspended

[root@centos1 data_kvm]# virsh list --all
 Id    Name                           State
-
 3     centos6                        paused

-

恢復虛擬機
[root@centos1 data_kvm]# virsh resume centos6
Domain centos6 resumed

[root@centos1 data_kvm]# virsh list --all
 Id    Name                           State
-
 3     centos6                        running

-

配置虛擬機實例伴隨宿主機自動啟動
[root@centos1 data_kvm]# virsh autostart centos6
Domain centos6 marked as autostarted

-

備份
[root@centos1 123]# virsh dumpxml centos6 > /etc/libvirt/qemu/centos6-1.xml

-

刪除虛擬機線關機
[root@centos1 123]# virsh shutdown centos6
Domain centos6 is being shutdown

-

強制切斷電源
[root@centos1 123]# virsh destroy centos6
Domain centos6 destroyed

-

刪除
[root@centos1 123]# virsh undefine centos6
Domain centos6 has been undefined

-

查看刪除結果
[root@centos1 123]# ls /etc/libvirt/qemu
autostart  centos6-1.xml  networks

[root@centos1 123]# virsh list --all
 Id    Name                           State

-

通過配置文件重新定義虛擬機
[root@centos1 123]# cd /etc/libvirt/qemu
[root@centos1 qemu]# mv centos6-1.xml centos6.xml

-

重新定義虛擬機
[root@centos1 qemu]# virsh define centos6.xml
Domain centos6 defined from centos6.xml

-

查看虛擬機信息
[root@centos1 qemu]# virsh list --all
 Id    Name                           State
-
 -     centos6                        shut off

-

修改虛擬機配置信息
[root@centos1 qemu]# vim /etc/libvirt/qemu/centos6.xml 
通過命令修改配置信息
[root@centos1 qemu]# virsh edit centos6

-

-

kvm文件管理

轉換raw格式從磁盤至qcow2格式
[root@centos1 qemu]# qemu-img info /data_kvm/store/google_kvm.img 
image: /data_kvm/store/google_kvm.img
file format: raw
virtual size: 9.8G (10485760000 bytes)
disk size: 9.8G

-

關閉虛擬機
[root@centos1 qemu]# virsh shutdown centos6

-

轉換磁盤文件格式
[root@centos1 qemu]# qemu-img convert -f raw -O qcow2
/data_kvm/store/google_kvm.img /data_kvm/store/centos6-2.qcow2

-
註;下面兩個qcow2 是修改後的

修改xml配置文件
[root@centos1 qemu]# virsh edit centos6

    <disk type=‘file‘ device=‘disk‘>
      <driver name=‘qemu‘ type=‘qcow2‘ cache=‘none‘/>
      <source file=‘/data_kvm/store/google_kvm.qcow2‘/>
      <target dev=‘vda‘ bus=‘virtio‘/>

-

想使用virt-cat更多命令先安裝libguestfs-tools
[root@centos1 qemu]# yum -y install libguestfs-tools

-

類似於cat命令
[root@centos1 media]# virt-cat -a /data_kvm/store/centos6-2.qcow2
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain

-

用於編輯文件用法與vim基本一致
[root@centos1 media]# virt-edit  -a /data_kvm/store/centos6-2.qcow2
/etc/resolv.conf 

-

-

虛擬機克隆

查看虛擬機狀態
[root@centos1 /]# virt-df -h centos6
Filesystem                                Size       Used  Available  Use%
centos6:/dev/sda1                         484M        33M       427M    7%
centos6:/dev/VolGroup/lv_root             8.2G       735M       7.0G    9%

-

從centos6克隆到centos7
[root@centos1 /]# virt-clone -o centos6 -n centos7 -    f /data_vkm/store/centos7.qcow2

-

查看抓狀態
[root@centos1 /]#virsh list --all

Id    Name                           State
-
 -     centos6                        shut off
 -     centos7                        shut off

-

啟動虛擬機
[root@centos1 /]virsh start centos7

-

-

虛擬機快照

對contos6創建快照
[root@centos1 /] virsh snapshot-create centos6
Domain  snapshot 1382572463 created

-

查看快照版本信息
[root@centos1 /] cirsh snapshot-current centos6
<domainsnapshot>
   <name>1382572463</name>
   <state>running</state>

-

查看快照信息
[root@centos1 /] virsh snapshot-list centos6

-

恢復快照
[root@centos1 /] virsh snapshot-servert centos6 1382571463

-

查看快照版本信息
[root@centos1 /] virsh snapshot-current centos6

-

刪除快照
[root@centos1 /] virsh snapshot-delete centos6  1381571463

部署kvm虛擬化平臺及功能管理