kvm

1:什麼是雲計算?

雲計算是一種按量付費的模式!雲計算的底層是經過虛擬化技術來實現的!php

2:雲計算的服務類型

2.1 IAAS基礎設施即服務(基礎設施即服務)虛擬機 ecs openstackjava

2.2 PAAS平臺即服務(平臺即服務)php,java docker容器linux

2.3 SAAS軟件即服務 企業郵箱服務cdn服務 rds數據庫 開發+運維nginx

img

3:爲何要用雲計算

小公司:10臺20w + idc 5w + 100M 10W,10臺雲主機,前期投入小,擴展靈活,風險小web

大公司:閒置服務器計算資源,虛擬機,出租(超賣)docker

64G服務器64臺1G 320臺1G 64臺大公司本身的業務264臺租出去數據庫

國企,銀行vim

4:雲計算的基礎KVM虛擬化

主機:內存4G +純淨的系統CentOS-7centos

4.1:什麼是虛擬化?

虛擬化,經過模擬計算機的硬件,來實如今同一臺計算機上同時運行多個不一樣的操做系統的技術。bash

4.2:虛擬化軟件的差別

linux虛擬化軟件:qemu軟件純模擬全虛擬化軟件,特別慢!AIX,兼容性好!

xen(半)性能特別好,須要使用專門修改以後的內核,兼容性差!

redhat 5.5 xen kvm KVM(Linux)全虛擬機,它有硬件支持cpu,基於內核,並且不須要使用專門的內核centos6 kvm性能更好,兼容更好

vmware工做站:圖形界面

虛擬框:圖形界面Oracle

4.3安裝kvm虛擬化管理工具

KVM:基於內核的虛擬機

yum install libvirt virt-install qemu-kvm -y
KVM:基於內核的虛擬機

libvirt做用:虛擬機的管理軟件libvirt:kvm,xen,qemu,lxc ....

virt-virt-install virt-clone做用:虛擬機的安裝工具和克隆工具qemu-kvm qemu-img(qcow2,raw)做用:管理虛擬機的虛擬磁盤

注意:若是使用內網源倉庫

echo "192.168.37.200 mirrors.aliyun.com" >>/etc/hosts

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum install libvirt virt-install qemu-kvm -y

環境要求:

centos 7.4 7.6

vmware宿主機kvm虛擬機

內存4G,cpu打開虛擬化

4.4:安裝一臺kvm虛擬機

分發軟件TightVNC或者VNC-Viewer-6.19.325 宿主機
微軟的遠程桌面
vnc:遠程的桌面管理工具 向日葵 微軟的遠程桌面
systemctl start libvirtd.service systemctl status libvirtd.service

宿主機:物理服務器 10.0.0.100

建議虛擬機內存不要低於1024M,不然安裝系統特別慢!

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
解釋:--virt-type kvm 虛擬化的類型(qemu) --os-type=linux 系統類型 --os-
variant rhel7 系統版本 --name centos7 虛擬機的名字 --memory 1024 虛
擬機的內存 --vcpus 1 虛擬cpu的核數 --disk
/opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-
DVD-1708.iso --network network=default 使用默認NAT的網絡 --graphics
vnc,listen=0.0.0.0 --noautoconsole

netstat -lntup 查看5900端口是否啓動

vnc:10.0.0.100:5900

注意:雲主機都沒有swap分區

4.5:kvm虛擬機的virsh平常管理和配置

命令1

virst list #查看正在運行的虛擬機
virst list --all #查看建立的全部虛擬機
virsh start centos7 #啓動虛擬機    #centos是虛擬機的名稱
virsh shutdown(虛擬機有系統) #關機
virsh destroy #拔電源關機
virsh reboot(虛擬機有系統) #重啓
virsh undefine(刪除以前必定關機)  刪除虛擬機 注意:若是裝一半想要刪除虛擬機須要刪除磁盤文件
virsh dumpxml centos7 >vm_Centos7.xml #導出/備份配置文件
virsh define vm_Centos7.xml #導入配置文件

問題:由於沒有關機刪除虛擬機致使刪除了配置文件進程還在這時候系統認爲虛擬機存在這時候你關虛擬機少一臺虛擬機

解決方法:

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 -- boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
-- boot hd :啓動硬盤 這時候會在/etc/libvirt/qemu/生成一個xml的配置文件

命令2

virsh domrename web01(關機以後命名) #重命名
修改磁盤名字: mv centos7.raw web01.raw
virsh edit web01 編輯配置文件 (語法檢查功能)
<source file='/opt/web01.raw'/>
修改成web01
virsh suspend web01 #掛起指定的虛擬機
virsh resume  web01 #恢復掛起的虛擬機
注意:掛起的虛擬機可能會時間不一樣步
yum install ntpdate -y
ntpdate ntp6.aliyun.com
virsh  vncdisplay web01 #查看vnc端口號
第一種設置開機自啓方法
virsh  autostart  --disable web01 #取消開機自啓
Virsh  autostart  web01 #設置指定虛擬機開機自啓
第二種設置開啓自啓方法(軟鏈接)
ln -s /etc/libvirt/qemu/web01.xml /etc/libvirt/qemu/autostart/
rm -fr /etc/libvirt/qemu/autostart/ #取消開機自啓(刪除軟鏈接)

console 控制檯登陸

centos7的kvm虛擬機:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"(修改內核參數)
reboot
配置完以後:
virsh console web01

注意:須要退出按ctrl +]

問題:若是將宿主機掛起會致使kvm管理的虛擬機上不了網
解決方法:由於將虛擬機掛起會致使內核轉發參數消失 
開啓內核轉發參數:
sysctl -a|grep upv4|grep ip_forward
sysctl net.ipv4.ip_forward=1

4.6:kvm虛擬機虛擬磁盤格式轉換和快照管理

1.raw: 裸格式,佔用空間比較大,不支持快照功能,不方便傳輸 ,讀寫性能較好 總50G 佔用50G,傳輸50G

2.qcow2: qcow(copy on write)佔用空間小,支持快照,性能比raw差一點,方便傳輸 總50G 佔用2G,傳輸2G

qemu-img: 管理磁盤格式

qemu-img info /opt/web01.raw #查看指定虛擬磁盤信息
qemu-img create /opt/baozexu.raw 10G #建立一塊容量爲10G的raw格式的虛擬硬盤 
-f 指定磁盤格式
qemu-img create -f qcow2 /opt/bao.qcow2 #建立一塊的qcow2格式的虛擬硬盤 
qemu-img resize /opt/baozexu.raw 20G  #擴容baozeu.raw硬盤爲20G
qemu-img convert -f raw -O qcow2 /opt/baozexu.raw /opt/baozexu.qcow2 #將baozexu.raw格式 轉換爲baozexu.qcow2格式
注意:若是將格式轉換後將配置文件也一併一塊兒修改
virsh edit web01
...
<driver name='qemu' type='qcow2'/>
<source file='/opt/web01.qcow2'/>
...
virsh dumpxml web01|grep qcow2 #打印修改的配置文件
 <driver name='qemu' type='qcow2'/>
 <source file='/opt/web01.qcow2'/>

4.6.2快照管理

virsh snapshot-create web01  #建立快照(以默認的時間戳命名)
virsh snapshot-list web01    #查看快照
virsh snapshot-delete web01 --snapshotname 1574860043 #刪除快照
virsh snapshot-create-as web01  --name install_nginx #建立快照並命名爲install——nginx
virsh snapshot-revert web01 --snapshotname install_nginx #還原快照
注意:raw不支持作快照,qcow2支持快照,而且快照就保存在qcow2的磁盤文件
中

4.7:kvm虛擬機克隆

4.7.1:完整克隆

自動擋:
virt-clone --auto-clone -o web01 -n web02 (完整克隆)
手動擋
cp web01.qcow2 web02.qcow2
virsh dumpxml web01 >web02.xml
vim web02.xml
#修改虛擬機的名字
#刪除虛擬機uuid
#刪除mac地址
#修改磁盤路徑
virsh define web02.xml
virsh start web02

4.7.2:連接克隆

a:生成虛擬機磁盤文件 qemu-img create -f qcow2 -b web03.qcow2
web04.qcow2
-b 建立引用盤 (基於web03.qcow2連接克隆web04.qcow2)
b:生成虛擬機的配置文件
virsh dumpxml web01 >web03.xml
vim web03.xml
#修改虛擬機的名字
<name>web03</name>
#刪除虛擬機uuid
<uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid>
#刪除mac地址
<mac address='52:54:00:4e:5b:89'/>
#修改磁盤路徑
<source file='/opt/web03.qcow2'/>
c:導入虛擬機並進行啓動測試
virsh define web03.xml virsh start web03
相關文章
相關標籤/搜索