虛擬化,經過模擬計算機的硬件,來實如今同一臺計算機上同時運行多個不一樣的操做系統的技術。php
阿里雲 kvm開源 azure vmware ESXI商業軟件 沒有虛擬化以前: 計算機的硬件配置愈來愈高 512G 內存,4路 8核16線程 ,12* PCI-E 1T的SSD; ntp服務,安裝多個mysql,安裝多個tomcat,安裝.... linux開源的,不少軟件都有依賴包openssl nginx 充分利用資源,軟件運行環境的隔離,只有虛擬化才行實現。
場景1:同一臺物理機運行多個php版本 php5.3(openssl,gd) php5.5 php7.2 場景2:機房的遷移,解決了硬件和系統的依賴 場景3:openstack環境,軟件發佈方式 場景4:開發環境和測試環境,使用虛擬化 只靠一臺物理服務器,30臺虛擬機 產品 -- 開發 -- 運維 -- 測試 so結尾,linux 庫文件 場景5:業務的快速部署 從頭安裝系統,安裝服務,配置 克隆虛擬機,改ip, 虛擬化:提升了資源的利用率,各個服務的安全性隔離,解決了系統和硬件之間的依賴
yum install libvirt virt-install qemu-kvm -y KVM:Kernel-based Virtual Machine libvirt 做用:虛擬機的管理軟件 libvirt: kvm,xen,qemu,lxc.... virt virt-install virt-clone 做用:虛擬機的安裝工具和克隆工具 qemu-kvm qemu-img (qcow2,raw)做用:管理虛擬機的虛擬磁盤 虛擬化軟件: qemu 軟件純模擬全虛擬化軟件,特別慢!AIX,兼容性好! xen(半) 性能特別好,須要使用專門修改以後的內核,兼容性差! redhat 5.5 xen KVM(linux) 全虛擬機,它有硬件支持cpu,基於內核,並且不須要使用專門的內核 centos6 kvm 性能較好,兼容較好
分發軟件TightVNC或者VNC Viewer 4.exe
宿主機node
vnc:遠程的桌面管理工具
向日葵mysql
systemctl start libvirtd.service systemctl status libvirtd.service
10.0.0.11 宿主機linux
建議虛擬機內存不要低於1024M,不然安裝系統特別慢!nginx
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-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
VNC出現鏈接失敗執行下面:web
virsh list --all virsh destroy centos7 virsh undefine centos7 rm -fr /opt/centos2.raw 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-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole vnc-service:5900 vnc:10.0.0.11:5900 --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
磁盤格式:
raw:10G 不支持作快照,性能好
qcow2: 支持快照sql
列表 list(--all) 開機 start 關機 shutdown 拔電源關機 destroy 導出配置dumpxml 例子:virsh dumpxml centos7 >centos7-off.xml 刪除undefine 推薦:先destroy,在undefine 導入配置 define 修改配置 edit(自帶語法檢查) 重命名 domrename (低版本不支持) 掛起 suspend 恢復 resume 查詢vnc端口號 vncdisplay /usr/libexec/qemu-kvm
kvm運行業務程序數據庫
開機啓動autostart,前提:systemctl enable libvirtd;
取消開機啓動autostart --disablewindows
centos7的kvm虛擬機:
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"centos
reboot
做業1:實現centos6的kvm虛擬機,console命令行登陸?
安裝一臺centos6的kvm虛擬機
console命令行登陸
做業2:centos6實現沒有swap分區,啓動進系統
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-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /data/oldboy.qcow2,format=qcow2,size=10 --cdrom /data/CentOS-7.2-x86_64-DVD-1511.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole raw: 裸格式,佔用空間比較大,不支持快照功能,性能較好,不方便傳輸 總50G 佔用2G qcow2:cow (copy on write)佔用空間小,支持快照,性能比raw差一點,方便傳輸 總50G 佔用2G qcow qemu-img info test.qcow2 建立一塊qcow2格式的虛擬硬盤:qemu-img create -f qcow2 test.qcow2 2G raw轉qcow2:qemu-img convert -f raw -O qcow2 oldboy.raw oldboy.qcow2 convert [-f fmt] [-O output_fmt] filename output_filename virsh edit web01: <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/opt/centos.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> virsh destroy web01 virsh start web01 建立快照virsh snapshot-create centos7 查看快照virsh snapshot-list centos7 還原快照virsh snapshot-revert centos7 --snapshotname 1516574134 刪除快照virsh snapshot-delete centos7 --snapshotname 1516636570 raw不支持作快照,qcow2支持快照,而且快照就保存在qcow2的磁盤文件中
virt-clone --auto-clone -o web01 -n web02 (完整克隆) a:生成虛擬機磁盤文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2 b:生成虛擬機的配置文件 <name>49-web03</name> <uuid>8e505e25-5175-46ab-a9f6-feaa096daaa4</uuid> <source file='/opt/49-web03.qcow2'/> <mac address='52:54:00:4e:5b:89'/> c:導入虛擬機並進行啓動測試 kvm連接克隆 a.基於源磁盤文件,建立連接磁盤文件 qemu-img create -f qcow2 -b 49-web03.qcow2 49-web04.qcow2 後置備 b:生成虛擬機的配置文件 c:導入虛擬機並進行啓動測試 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
默認的虛擬機網絡是NAT模式,網段192.168.122.0/24 默認NAT模式 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /opt/web04.qcow2 --boot hd --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole 橋接模式 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 1024 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 1:建立橋接網卡 virsh iface-bridge eth0 br0 取消橋接網卡 virsh iface-unbridge br0 2:virsh edit centos7 <interface type='bridge'> <mac address='52:54:00:55:aa:fa'/> <source bridge='br0'/> 在宿主機上,重啓虛擬機生效 3:測試虛擬機網絡
kvm虛擬機在線熱添加硬盤 臨時生效 virsh attach-disk web04 /opt/oldboy.qcow2 vdb --subdriver qcow2 永久生效 virsh attach-disk web04 /opt/oldboy.qcow2 vdb --subdriver qcow2 --config kvm虛擬機在線熱添加網卡 kvm虛擬機在線熱添加內存 kvm虛擬機在線熱添加cpu qemu-img create -f qcow2 add01.qcow2 5G virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --subdriver=qcow2 virsh detach-disk centos7 vdb 虛擬機磁盤擴容: 在kvm虛擬機,卸載 virsh detach-disk centos7 vdb qemu-img resize /data/centos7-add01.qcow2 +5G virsh attach-disk centos7 /data/centos7-add01.qcow2 vdb --live --cache=none --subdriver=qcow2 在xfs文件系統虛擬機中:xfs_growfs /dev/vdb 在ext2-4文件系統虛擬機中:resize2fs /dev/vdb
做業3:擴容kvm虛擬機的根分區
根分區擴容: 1)在宿主機上關閉虛擬機並調整虛擬機磁盤大小 qemu-img resize oldboy.qcow2 +10G 2)虛擬機中fdisk從新分區 fdisk /dev/vda 刪除原來的/dev/vda1 從新將全部空間給/dev/vda1 reboot重啓 3)重啓以後,執行xfs_growfs /dev/vda1, 若是虛擬機磁盤文件系統是ext4:resize2fs /dev/vda1
kvm虛擬機在線熱添加網卡
virsh attach-interface web04 --type bridge --source br0 --model virtio detach-interface web04 --type bridge --mac 52:54:00:35:d3:71
kvm虛擬機在線熱添加內存
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 臨時熱添加內存 setmem web04 1024M --live 永久增大內存 setmem web04 1024M --config
kvm虛擬機在線熱添加cpu
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 1,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole 熱添加cpu核數 setvcpus web04 4 --live 永久添加cpu核數 setvcpus web04 4 --config
冷遷移kvm虛擬機:配置文件,磁盤文件 熱遷移kvm虛擬機:配置文件,nfs共享 1): yum groupinstall "GNOME Desktop" -y yum install openssh-askpass -y yum install tigervnc-server -y vncpasswd vncserver :1 vncserver -kill :1 2):kvm虛擬機熱遷移 1:兩邊的環境(橋接網卡) 2:實現共享存儲(nfs) 3:虛擬機橋接網絡 4:在線熱遷移
做業3:擴容kvm虛擬機的根分區
做業4:擴展研究EXSI虛擬化和EXSI iso到kvm的虛擬機遷移
http://blog.51cto.com/liqingbiao/1742724 virt-v2v -i ova centos-dev-test01-v2v.ova -o local -os /opt/test -of qcow2
做業5:p2v遷移(物理機到kvm虛擬機的遷移
http://blog.csdn.net/tantexian/article/details/42869179
老古董:發熱量大,配置低 2G ddr 400MHZ 750w
老古董:發熱量大,配置低 2G ddr 400MHZ 750w
一臺新集羣 64G ddr4 2400MHZ 550w
iso鏡像,U盤 啓動盤 win PE
打包全部根目錄的文件,上傳到kvm服務器,輸出一個qcow2格式,替換驅動,
kvm宿主機 2000臺
查看每個宿主機有多少臺虛擬機?
查看每個宿主機還剩多少資源?
查看每一臺宿主機,每個虛擬機的ip地址?
kvm管理平臺,數據庫工具
信息:宿主機,總配置,剩餘的總配置
虛擬機的信息,配置信息,ip地址,操做系統
帶計費功能的kvm管理平臺,openstack ceilometer計費
自動化管理kvm宿主機,雲主機定製化操做
克隆一臺openstack模板機:4G內存,開啓虛擬化,掛載centos7.4的光盤
上傳腳本openstack-mitaka-autoinstall.sh到/root目錄
上傳鏡像:cirros-0.3.4-x86_64-disk.img到/root目錄
上傳配置文件:local_settings到/root目錄
上傳openstack_rpm.tar.gz到/opt下,並解壓
sh /root/openstack-mitaka-autoinstall.sh
大概10-30分鐘左右
訪問http://10.0.0.11/dashboard
域:default
用戶名:admin
密碼:ADMIN_PASS
注意: 在windows系統上修改host解析(10.0.0.11 controller)
添加node節點:
修改ip地址
hostnamectl set-hostname compute1
從新登陸讓新主機名生效
cd /opt/
rsync -avz 10.0.0.11:/opt/repo .
上傳腳本 openstack_node_autoinstall.sh
sh openstack_node_autoinstall.sh
openstack controller主控制節點,node節點, kvm宿主機 node節點, kvm宿主機 node節點, kvm宿主機 node節點, kvm宿主機 node節點, kvm宿主機