天天看點

KVM部署及概念筆記

雲計算概述:

   什麼是雲計算:資源使用和傳遞模式。

    虛拟化:一種具體的技術,用來将實體機虛拟成為多個互相獨立的虛拟機。

   雲計算不等于虛拟化。使用了虛拟化的技術做支撐。

IAAS 基礎設施即服務

PAAS

SAAS

私有雲 公有雲 混合雲

KVM。  伺服器虛拟化  桌面虛拟化 應用虛拟化

  硬體虛拟化。Intel vt-x/EPT  AMD  AMD-v /RVI

 libvirt   libvrit API庫 +  libvirtd datemon + 使用者工具(virsh)

xen kvm esxi qemu virtualbox

virsh shutdown   start  undefine  list edit 

libvrit xml     

#####################################################################################################################################################################33

[root@linux-node1 ~]# cat /etc/redhat-release 

CentOS Linux release 7.1.1503 (Core) 

[root@linux-node1 ~]# grep -E '(vmx|svm)' /proc/cpuinfo               ----檢視是否支援虛拟化

[root@linux-node1 ~]# yum install qemu-kvm qemu-kvm-tools virt-manager libvirt virt-install -y

qemu-kvm:使用者态的程式與kvm進行互動

qemu-kvm-tools:使用者态的程式與kvm進行互動的工具

virt-manager:虛拟化管理的工具

libvirt:

virt-install:

建立一個10G的硬碟:

[root@linux-node1 ~]# qemu-img create -f raw /opt/CentOS-7.1-x86_64.raw 10G

Formatting '/opt/CentOS-7.1-x86_64.raw', fmt=raw size=10737418240 

檢視是否有kvm:

[root@linux-node1 ~]# lsmod |grep kvm                  

kvm_intel             148081  0 

kvm                   461126  1 kvm_intel

啟動libvirtd并設定開機自動加載并檢視狀态:

[root@linux-node1 ~]# systemctl enable libvirtd.service

[root@linux-node1 ~]# systemctl start libvirtd.service 

[root@linux-node1 ~]# systemctl status libvirtd.service

将CD光牒挂載上:

[root@linux-node1 ~]# mount /dev/cdrom /mnt

mount: /dev/sr0 is write-protected, mounting read-only

使用dd指令做一個ISO鏡像:

[root@linux-node1 ~]# dd if=/dev/cdrom of=/opt/CentOS-7.1.iso

8419328+0 records in

8419328+0 records out

4310695936 bytes (4.3 GB) copied, 285.28 s, 15.1 MB/s

建立一台kvm虛拟機:(首先保證有vnc用戶端)

[root@linux-node1 ~]# virt-install --name CentOS-7.1-x86_64 --virt-type kvm --ram 1024 --cdrom=/opt/CentOS-7.1.iso --disk path=/opt/CentOS-7.1-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...

Creating domain...                                                                                            |    0 B  00:00:03     

Domain installation still in progress. You can reconnect to 

the console to complete the installation process.

打開VNC用戶端:10.0.0.111:5900

tab鍵:指定核心參數  net.ifnames=0 biosdevname=0     裝出來的系統就是eth0

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

[root@localhost qemu]# virsh list                ----檢視虛拟機是否運作

 Id    Name                           State

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

 2     CentOS-7.1-x86_64              running

[root@localhost qemu]# virsh list -all           ----檢視所有虛拟機是否運作

[root@localhost qemu]# virsh edit CentOS-7.1-x86_64    -----編輯虛拟機,通過xml

[root@localhost qemu]# virsh start CentOS-7.1-x86_64    -----啟動虛拟機

管理kvm虛拟機:

[root@localhost qemu]# virsh edit CentOS-7.1-x86_64     

<vcpu placement='auto' current="1">4</vcpu>       将cpu設定為自動調整,最低一個,最大四個

改完之後重新開機才生效

[root@localhost qemu]# virsh shutdown  CentOS-7.1-x86_64

[root@localhost qemu]# virsh start CentOS-7.1-x86_64

設定成2個cpu

[root@localhost qemu]# virsh setvcpus CentOS-7.1-x86_64 2 --live

設定成3個cpu

[root@localhost qemu]# virsh setvcpus CentOS-7.1-x86_64 3 --live

總結:隻支援熱添加,不支援熱删除

回虛拟機檢視:

[root@localhost qemu]cat /proc/cpuinfo         ----就可以看到cpu有4核了

########設定記憶體的熱添加與熱減少########

[root@localhost qemu]# virsh edit CentOS-7.1-x86_64  

 <memory unit='KiB'>4048576</memory>

  <currentMemory unit='KiB'>1048576</currentMemory>

更改之後回虛拟機檢視,記憶體從1G變成了721M

KVM之記憶體管理的氣球模式:

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd info balloon

balloon: actual=1024

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd balloon 600

回虛拟機檢視,記憶體從721變成了297M

[root@localhost ~]# virsh qemu-monitor-command CentOS-7.1-x86_64 --hmp --cmd balloon 2000

回虛拟機檢視,記憶體從297變成了1697M

################網絡##################

添加一個網橋:

[root@localhost opt]# brctl addbr br0

橋接網絡:

[root@localhost ~]# brctl addif br0 eth0 && ip addr del dev eth0 10.0.0.111/24 && ifconfig br0 10.0.0.111/24 up && routeadd default gw 10.0.0.2 && iptables -F

[root@localhost ~]# virsh edit CentOS-7.1-x86_64    

  <interface type='bridge'>

      <mac address='52:54:00:f3:42:55'/>

      <source bridge='br0'/>

此處修改後kvm虛拟機裡面的網橋就會變成和主控端一個網段的,并且可以用ssh用戶端登入

如果IP位址出現的全部是mac位址,則需要把IP位址設定成靜态的,并設定DNS,然後才能登入和ping通外網

#############硬碟############

全鏡像模式          稀疏模式

raw                   qcow2

[root@localhost ~]# qemu-img info /opt/CentOS-7.1-x86_64.raw

image: /opt/CentOS-7.1-x86_64.raw

file format: raw

virtual size: 10G (10737418240 bytes)

disk size: 1.3G

#I/O優化  CDN公司必問

 Virtio  virio-net virtio-blk 半虛拟化

#scheudler   

[root@oldboy ~]# dmesg | grep -i scheduler

[    0.775193] io scheduler noop registered

[    0.775195] io scheduler deadline registered (default)

[    0.775396] io scheduler cfq registered

[root@oldboy ~]# cat /sys/block/sda/queue/scheduler 

noop [deadline] cfq 

[root@oldboy ~]# echo cfq > /sys/block/sda/queue/scheduler 

noop deadline [cfq]

永久修改 加入核心參數    elevator=noop

     本文轉自陳繼松 51CTO部落格,原文連結:http://blog.51cto.com/chenjisong/1725665,如需轉載請自行聯系原作者

繼續閱讀