雲計算是一種按量付費的模式!雲計算的底層是經過虛擬化技術來實現的!php
2.1 IAAS基礎設施即服務(基礎設施即服務)虛擬機 ecs openstackjava
2.2 PAAS平臺即服務(平臺即服務)php,java docker容器linux
2.3 SAAS軟件即服務 企業郵箱服務cdn服務 rds數據庫 開發+運維nginx
小公司:10臺20w + idc 5w + 100M 10W,10臺雲主機,前期投入小,擴展靈活,風險小web
大公司:閒置服務器計算資源,虛擬機,出租(超賣)docker
64G服務器64臺1G 320臺1G 64臺大公司本身的業務264臺租出去數據庫
國企,銀行vim
主機:內存4G +純淨的系統CentOS-7centos
虛擬化,經過模擬計算機的硬件,來實如今同一臺計算機上同時運行多個不一樣的操做系統的技術。bash
linux虛擬化軟件:qemu軟件純模擬全虛擬化軟件,特別慢!AIX,兼容性好!
xen(半)性能特別好,須要使用專門修改以後的內核,兼容性差!
redhat 5.5 xen kvm KVM(Linux)全虛擬機,它有硬件支持cpu,基於內核,並且不須要使用專門的內核centos6 kvm性能更好,兼容更好
vmware工做站:圖形界面
虛擬框:圖形界面Oracle
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打開虛擬化
分發軟件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分區
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的配置文件
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
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'/>
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的磁盤文件 中
自動擋: 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
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