KVM搭建與應用

KVM通俗的說就是一臺服務器當多臺用,詳細介紹去百度和谷歌。

 

首先查看服務器是否支持虛擬化

 

[root@KVM~]# grep -E '(vmx|svm)' /proc/cpuinfo --color

反饋如下:

  flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov p    at pse36 clflush dts acpi mmx fxsr sse sse2ss ht tm pbe syscall nx pdpe1gb rdtscp lm    constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tscaperfmperf pni pcl    mulqdq dtes64monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse    4_2 x2apic popcnt tsc_deadline_timer aesxsave avx f16c rdrand lahf_lm arat epb xsave   opt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

 

備註:如果是使用VMware測試搭建,需要開啓虛擬化支持:右擊虛擬機-設置-處理器-虛擬化引擎首選模式爲Intel VT-x/EPT 或 AMD-V/RVI,並勾選虛擬化"Intel VT-x/EPT 或AMD-V/RVI",之後內存最好大於2G,CPU最好大於2. 

 

 

安裝阿里雲源

wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo

yum clean all

yum makecache

 

安裝KVM並檢查模塊

yuminstallqemu-kvm -y

[root@KVM~]# lsmod | grep kvm

kvm_intel              54285  0

kvm                   333172  1 kvm_intel

 

 

安裝管理工具

yuminstallvirt-manager python-virtinst qemu-kvm-tools -y

yuminstalllibvirt libvirt-python -y

 

 

物理機配置橋接網卡

[root@KVMnetwork-scripts]# catifcfg-br0

DEVICE=br0

TYPE=Bridge

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none(也可以設置成dhcp,按需配置)

DNS2=114.114.114.114

DNS1=202.106.0.20

IPADDR=172.16.10.189

NETMASK=255.255.255.0

GATEWAY=172.16.10.1

 

[root@KVMnetwork-scripts]# catifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

BRIDGE=br0

 

 

重啓網絡服務

servicenetwork restart

開啓路由轉發

查看完成後網絡配置

[root@KVM~]# ifconfig

br0       Link encap:Ethernet  HWaddr 70:E2:84:08:EB:AE 

          inet addr:172.16.10.189  Bcast:172.16.10.255  Mask:255.255.255.0

          inet6 addr:fe80::72e2:84ff:fe08:ebae/64Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:143000 errors:0dropped:0overruns:0frame:0

          TX packets:44349 errors:0dropped:0overruns:0carrier:0

          collisions:0 txqueuelen:0

          RX bytes:10882563 (10.3MiB)  TX bytes:16649590 (15.8MiB)

 

eth0      Link encap:Ethernet  HWaddr 70:E2:84:08:EB:AE 

          inet6 addr: fe80::72e2:84ff:fe08:ebae/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:189220 errors:0dropped:0overruns:0frame:0

          TX packets:77679 errors:0dropped:0overruns:0carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:71695893 (68.3MiB)  TX bytes:19745769 (18.8MiB)

          Memory:fbe20000-fbe40000

         

         

創建空硬盤,相當於物理機的硬盤(公司常用的qcow2格式)
# /home/kvm需要手動創建,一般存放在較大空間目錄下,自行修改

[root@KVM~]# qemu-img create -f qcow2 /home/kvm/kvm-demo2.qcow2 100G

Formatting'/home/kvm/kvm-demo2.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536

 

上傳磁盤鏡像/home/kvm/CentOS-6.5.iso(可使用winscp上傳,這個是裝機用的光盤,因爲配置了橋接網卡,同樣可以使用PXE或者cobbler進行裝系統)

啓動libvirt

/etc/init.d/libvirtdstart

 

 

創建一個新的虛擬機

  virt-install --virt-type kvm --name kvm-demo --boot network,cdrom,menu=on--ram 512 --cdrom=/home/kvm/CentOS-6.5.iso --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel6 --accelerate--disk path=/home/kvm/kvm-demo.qcow2,size=5,format=qcow2,bus=virtio --bridge=br0,model=virtio --autostart

  解釋:

    --virt-type kvm                         類型

    --name                            名字

    --ram                            內存

    --cdrom=/home/kvm/CentOS-6.5.iso    安裝使用的鏡像

    --network                        使用的網絡

--diskpath=/home/kvm/kvm-demo.qcow2    指定磁盤(之前創建的) 

 

    virsh setvcpus kvm-test --maximum 8 --config

添加cpu會用到這條命令

 

通過virshlist --all查看虛擬機狀態

[root@KVM~]# virsh list --all

 Id   Name                          State

----------------------------------------------------

 12    kvm-demo                       running

 

 使用VNC登錄查看,並進行裝機(VNC端口默認是從5900開始)

    http://p_w_picpaths2017.cnblogs.com/blog/1095387/201709/1095387-20170925153036620-1206964873.png

登錄上去以後即可進行裝機。

裝機完成以後再次進行連接,界面如下

http://p_w_picpaths2017.cnblogs.com/blog/1095387/201709/1095387-20170925153052635-1975205100.png

登錄到系統查看IP

http://p_w_picpaths2017.cnblogs.com/blog/1095387/201709/1095387-20170925153108557-551979263.png

至此KVM虛擬機搭建完成,可以使用Xshell連接上去,之後就和普通服務器沒什麼大的區別了。

常用virsh指令

1)virsh list 列出當前虛擬機列表,不包括未啓動的

2)virsh list --all 列出所有虛擬機,包括所有已經定義的虛擬機

3)virsh destroy vm-name 關閉虛擬機

4)virsh start vm-name 啓動虛擬機

5)virsh edit vm-name 編輯虛擬機xml文件

6)virsh undefine vm-name 刪除虛擬機

7)virsh shutdown vm-name 停止虛擬機

8)virsh reboot vm-name 重啓虛擬機

9)virsh autostart vm-name 虛擬機隨宿主機啓動

複製代碼

++++++++++++++++++++++++++++++創建和拍攝快照++++++++++++++++++++++++++++++++++

 

KVM快照方法常用的是qemu-img snapshot 和virsh snapshot

經過我多次試驗qemu-imgsnapshot -c 快照名 域名,此種方法已經不能再百分百成功創建快照,創建後可能導致虛擬機無法啓動,報Filetoo large的錯誤,並且未找到解決辦法。下面將介紹virsh snapshot創建還原快照的方法。

 

查看KVM虛擬機運行狀態

[root@KVM~]# virsh list

 Id    名稱                         狀態

----------------------------------------------------

 5     kvm-test                       running

 

首先創建一個純淨版的快照,沒有安裝任何服務

[root@KVM~]#virsh snapshot-create-as --domain kvm-test --name kvm_clean

Domainsnapshot kvm_clean created

domain是虛擬機的名字 name是快照的名字

備註:創建快照的速度根據服務器的配置會有所不同,在創建快照的同時,KVM虛擬機會處於暫時暫停的狀態(創建快照完成後會自動轉換爲running),如果是線上服務器,請自行定奪。

 

 

查看創建的快照

[root@KVM~]# virsh snapshot-list kvm-test

 名稱               Creation Time             狀態

------------------------------------------------------------

 kvm_clean            2016-01-2515:07:14 +0800 running

登錄到kvm虛擬機 kvm-test中

安裝Apache服務並啓動

yuminstallhttpd -y ; echo"Test KVM snapshot">> /var/www/html/index.html ; /etc/init.d/httpd restart

 

訪問測試

[root@kvm-test~]# curl 127.0.0.1

TestKVM snapshot

 

再次創建快照

[root@KVM~]# virsh snapshot-create-as --domain kvm-test --name kvm_httpd

Domainsnapshot kvm_httpd created

 

 

再次查看快照

[root@KVM~]# virsh snapshot-list kvm-test

 名稱               Creation Time             狀態

------------------------------------------------------------

 kvm_clean            2016-01-2515:07:14 +0800 running

 kvm_httpd           2016-01-2516:03:52 +0800 running

 

還原測試:

    首先還原至純淨版,未安裝Apache服務

    關閉虛擬機(也可開機還原,不建議)

    [root@KVM ~]# virsh snapshot-revertkvm-test kvm_clean

    登錄到虛擬機查看能否訪問httpd服務

    [root@kvm-test ~]# curl 127.0.0.1

    curl: (7) couldn't connect to host

    無法訪問,說明還原成功,再次還原到已安裝httpd服務的狀態

    [root@KVM ~]# virsh snapshot-revertkvm-test kvm_httpd

    訪問測試

    [root@kvm-test ~]# curl 127.0.0.1

    Test KVM snapshot

    還原成功。

   

 

 

+++++++++++++++++++++++++++++++在線增加CPU個數+++++++++++++++++++++++++++++++

 

查看爲增加之前的邏輯CPU個數

[root@kvm-test~]# cat /proc/cpuinfo | grep process | wc -l

2

 

增加CPU一條命令即可

[root@KVM~]# virsh setvcpus kvm-test 3

 

再次查看

[root@kvm-test~]# cat /proc/cpuinfo | grep process | wc -l

3

 

 

+++++++++++++++++++++++++++++++在線增加內存+++++++++++++++++++++++++++++++++++

查看現有的內存

[root@kvm-test~]# free -m | grep Mem | awk'{print $2}'

628

 

增加內存至1024M同樣一條命令

[root@KVM~]# virsh setmem kvm-test 1024M

 

再次查看

[root@kvm-test~]# free -m | grep Mem | awk'{print $2}'

852

 

Over

複製代碼

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章