1、虛擬化概述
虛擬化(英語:Virtualization)是一種資源管理技術,是將計算機的各種實體資源,如服務器、網絡、內存及存儲等,予以抽象、轉換後呈現出來,打破實體結構間的不可切割的障礙,使用戶可以比原本的組態更好的方式來應用這些資源。這些資源的新虛擬部份是不受現有資源的架設方式,地域或物理組態所限制。
• virtualization 資源管理
– x個物理資源 --> y個邏輯資源
– 實現程度:完全、部分、硬件輔助(CPU)
案例:創建新的虛擬機nsd:搭建本地Yum倉庫
(1)服務端:掛載光盤
[root@localhost 桌面]# mount /dev/cdrom /mnt
(2)客戶端:書寫一個配置文件/etc/yum.repos.d/*.repo
[root@localhost 桌面]# vim /etc/yum.repos.d/abc.repo
[abc]
name=abc
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@localhost 桌面]# yum repolist
2、yum軟件組管理
• 使用RHEL7軟件倉庫的預設分組
– yum groups list [hidden] [組名]...
– yum groups info [組名]...
– yum groups install [組名]...
– yum groups remove [組名]
3、安裝虛擬化服務器平臺
• 主要軟件組
Virtualization\ Client #虛擬化客戶端
Virtualization\ Platform #虛擬化平臺
Virtualization\ Hypervisor #虛擬化管理器
Virtualization\ Tools #虛擬化工具
[root@localhost 桌面]# yum -y groups install
Virtualization\ Client
Virtualization\ Platform
Virtualization\ Hypervisor
Virtualization\ Tools
虛擬化服務:libvirtd
真機操作:
• 查看KVM節點(服務器)信息
– virsh nodeinfo
• 列出虛擬機
– virsh list [--all]
• 查看指定虛擬機的信息
– virsh dominfo 虛擬機名稱
• 運行|重啓|關閉指定的虛擬機
– virsh start|reboot|shutdown 虛擬機名稱
• 強制關閉指定的虛擬機
– virsh destroy 虛擬機名稱
[root@room9pc14 桌面]# virsh autostart nsd #設置開機自起動
[root@room9pc14 桌面]# virsh dominfo nsd
[root@room9pc14 桌面]# virsh autostart --disable nsd #關閉自起動
[root@room9pc14 桌面]# virsh dominfo nsd
libvirtd 爲管理虛擬機提供服務接口
[root@kvmsvr ~]# systemctl restart libvirtd
[root@kvmsvr ~]# systemctl enable libvirtd
使用virt-manager客戶端工具調出KVM圖形管理器
4、KVM虛擬機的組成
1)xml配置文件(虛擬機描述文件):定義虛擬機的名稱、UUID、CPU、內
存、虛擬磁盤、網卡等各種參數設置
虛擬機描述文件默認路徑: /etc/libvirt/qemu
2)磁盤鏡像文件:保存虛擬機的操作系統及文檔數據,
鏡像路徑取決於xml配置文件中的定義
磁盤鏡像文件 默認路徑: /var/lib/libvirt/images/
查看磁盤鏡像文件信息
qemu-img info /var/lib/libvirt/images/nsd.qcow2
5、手動快速創建一臺虛擬機
(1)創建新的磁盤文件
[root@room9pc14 桌面]# cd /var/lib/libvirt/images/
[root@room9pc14 images]# cp nsd.qcow2 test01.qcow2
(2)寫新的虛擬機描述文件
[root@room9pc14 images]# cd /etc/libvirt/qemu/
[root@room9pc14 qemu]# cp nsd.xml test01.xml
[root@room9pc14 qemu]# vim test01.xml
修改name、刪除UUID整行、修改磁盤文件路徑、刪除MAC整行
(3)導入虛擬機信息
[root@room9pc14 /]# virsh define /etc/libvirt/qemu/test01.xml
[root@room9pc14 /]# virsh list --all
[root@room9pc14 /]# virsh start test01
(4)導出xml配置文件
– 查看:virsh dumpxml 虛擬機名
– 備份:virsh dumpxml 虛擬機名 > 虛擬機名.xml
(5)編輯虛擬機設置
• 對虛擬機的配置進行調整
– 編輯: virsh edit 虛擬機名
導出、修改、導入
刪除虛擬機
– virsh undefine 虛擬機名
# virsh undefine test01
# rm -rf /var/lib/libvirt/images/test01.qcow2
6、COW技術原理
Copy On Write 寫時複製
– 直接映射原始盤的數據內容
– 對前端盤的修改不回寫到原始盤
(1) 快速創建qcow前端盤
qemu-img 通過 -b 選項複用指定後端盤
qemu-img create -f qcow2 -b 後端盤 前端盤
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -b nsd.qcow2 new01.qcow2
qemu-img info new01.qcow2
(2)常見新的虛擬機描述文件
cd /etc/libvirt/qemu/
cp nsd.xml new01.xml
vim new01.xml
修改name、刪除UUID整行、修改磁盤文件路徑指定前端盤、刪除MAC整行
(3)導入新的虛擬機
virsh define /etc/libvirt/qemu/new01.xml
案例:
1.新建兩臺虛擬機
[root@room9pc14 桌面]# clone-vm7
Enter VM number: 1
[root@room9pc14 桌面]# clone-vm7
Enter VM number: 2
2.在真機上操作,隨真機的啓動而啓用
[root@room9pc14 桌面]# virsh autostart A
[root@room9pc14 桌面]# virsh autostart B
3.以root身份進入虛擬機,配置兩臺虛擬機的網絡地址參數,密碼123456
虛擬機A:
IP地址:192.168.4.7/24
主機名:svr7.tedu.cn
虛擬機B:
IP地址:192.168.4.207/24
主機名:pc207.tedu.cn
4.真機利用Web服務提供Yum源(共享光盤所有內容)
[root@room9pc14 桌面]# ifconfig private1
[root@room9pc14 桌面]# rpm -q httpd
httpd-2.4.6-40.el7.x86_64
# mkdir /var/www/html/rhel7
# mount /ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/
# cp -r /mnt/* /var/www/html/rhel7/
# firefox http://127.0.0.1/rhel7
# firefox http://192.168.4.254/rhel7
5.虛擬機A與虛擬機B指定Yum位置
[root@svr7 ~]# vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0
[root@pc207 ~]# vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0
6. 設置防火牆trusted與關閉SELinux
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted
[root@svr7 ~]# setenforce 0 #當前修改爲寬鬆模式
[root@svr7 ~]# getenforce
Permissive
[root@svr7 ~]# vim /etc/selinux/config
SELINUX=permissive