1. 什么是虛擬化尚镰?
虛擬化鼻种,通過模擬計(jì)算機(jī)的硬件歧强,來實(shí)現(xiàn)在同一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)不同的操作系統(tǒng)的技術(shù)澜薄。
2. 為什么要用虛擬化?
1.計(jì)算機(jī)的硬件配置越來越高,虛擬化可以充分利用計(jì)算機(jī)的高配置.
3虛擬化的應(yīng)用場景
- 服務(wù)器安裝各種php摊册,python肤京,go環(huán)境,ruby茅特,java
- 在同一個(gè)服務(wù)器上運(yùn)行同一個(gè)服務(wù)的不同版本.(php5.5 php7.2等)
- 機(jī)房的遷移,可以很好的解決硬件和系統(tǒng)的依賴.
- openstack環(huán)境,軟件發(fā)布方式
4目前市場常見的虛擬化技術(shù)有哪些
目前市場上比較常見的有四種云主機(jī)虛擬化技術(shù)忘分,分別是Hyper-V、Virtuozzo白修、Xen和VMware
5.環(huán)境準(zhǔn)備(宿主機(jī)最好是CentOS7.4/7.6)
5.1. 設(shè)置宿主機(jī)的內(nèi)存
5.2. 打開宿主機(jī)的虛擬化功能
5.3. 掛載光盤妒峦,創(chuàng)建虛擬機(jī)的時(shí)候能用到(對(duì)鏡像沒啥要求)
5.4. 連接宿主機(jī),創(chuàng)建鏡像文件()
[root@wyf opt]# cd /opt/
[root@wyf opt]# dd if=/dev/cdrom of=CentOS-7.5-x86_64-DVD-1804.iso
6. kvm虛擬化管理軟件的安裝
yum install libvirt virt-install qemu-kvm -y
KVM:Kernel-based Virtual Machine
libvirt 作用:虛擬機(jī)的管理軟件
libvirt: kvm,xen,qemu,lxc....
virt virt-install virt-clone 作用:虛擬機(jī)的安裝工具和克隆工具
qemu-kvm qemu-img (qcow2,raw)作用:管理虛擬機(jī)的虛擬磁盤
虛擬化軟件:
qemu 軟件純模擬全虛擬化軟件兵睛,特別慢肯骇!AIX窥浪,兼容性好!
xen(半) 性能特別好笛丙,需要使用專門修改之后的內(nèi)核漾脂,兼容性差! redhat 5.5 xen
KVM(linux) 全虛擬機(jī)若债,它有硬件支持cpu符相,基于內(nèi)核,而且不需要使用專門的內(nèi)核 centos6 kvm
性能較好蠢琳,兼容較好
7. 安裝一臺(tái)kvm虛擬機(jī)
systemctl start libvirtd.service
systemctl status libvirtd.service
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 CentOS-7.5-x86_64-DVD-1804.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
注釋
--virt-type kvm 虛擬化的類型(qemu)
--os-type=linux 系統(tǒng)類型
--os-variant rhel7 系統(tǒng)版本
--name centos7 虛擬機(jī)的名字
--memory 1024 虛擬機(jī)的內(nèi)存
--vcpus 1 虛擬cpu的核數(shù)
--disk /opt/centos2.raw,format=raw,size=10
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso
--network network=default 使用默認(rèn)NAT的網(wǎng)絡(luò)
--graphics vnc,listen=0.0.0.0
--noautoconsole 加上此參數(shù)可以在后臺(tái)運(yùn)行
8. Windows 上安裝vnc-service
9. 連接宿主機(jī)
IP是宿主記得IP 端口是5900+
連接上宿主機(jī)后會(huì)出現(xiàn)CentOS的安裝界面
9.1. 選擇語言
9.2. 配置磁盤
9.3.關(guān)閉KDUMP
9.3.關(guān)閉KDUMP
9.4. 配置網(wǎng)絡(luò)
9.5. 配置時(shí)區(qū)
9.6. 重啟虛擬機(jī)
9.7. 配置root密碼
等待安裝完成啊终,reboot
到此步一個(gè)虛擬機(jī)就完成了**
[root@wyf ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
- centos7 shut off
- web01 shut off
- web02 shut off
[root@wyf ~]# virsh start centos7
Domain centos7 started
[root@wyf ~]# virsh autostart centos7
Domain centos7 marked as autostarted
10. 虛擬機(jī)管理命令
查看當(dāng)前所有虛擬機(jī)
virsh list --all
開機(jī)
[root@wyf ~]# virsh start web01
Domain web01 started
關(guān)機(jī)
[root@wyf ~]# virsh shutdown web01
Domain web01 is being shutdown
斷電的方式關(guān)機(jī)
[root@wyf ~]# virsh destroy centos7
Domain centos7 destroyed
導(dǎo)出虛擬機(jī)配置文件
[root@wyf ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
- centos7 shut off
- web01 shut off
- web02 shut off
[root@wyf ~]# virsh dumpxml >centos3.xml
error: command 'dumpxml' requires <domain> option
[root@wyf ~]# virsh dumpxml centos7 >centos3.xml
[root@wyf ~]# ll
total 20
-rw-r--r-- 1 root root 5148 May 20 18:18 1.xml
-rw-------. 1 root root 1448 Aug 9 2018 anaconda-ks.cfg
-rw-r--r-- 1 root root 3851 May 20 23:49 centos3.xml
-rw-r--r-- 1 root root 3851 May 20 23:46 centos7.xml
[root@wyf ~]# virsh undefine centos7
Domain centos7 has been undefined
[root@wyf ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
- web01 shut off
- web02 shut off
導(dǎo)入一個(gè)虛擬機(jī)
[root@wyf ~]# virsh edit centos7
error: failed to get domain 'centos7'
error: Domain not found: no domain with matching name 'centos7'
[root@wyf ~]# virsh define centos3.xml
Domain centos7 defined from centos3.xml
[root@wyf ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
- centos7 shut off
- web01 shut off
- web02 shut off
修改虛擬機(jī)的磁盤目錄(擴(kuò)容)
[root@wyf ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
- centos7 shut off
- web01 shut off
- web02 shut off
[root@wyf data]# cd /opt/
[root@wyf opt]# ll
total 5677200
-rw------- 1 root root 10737418240 May 20 14:02 centos2.raw
-rw------- 1 root root 10737418240 May 20 23:43 centos3.raw
-rw-r--r-- 1 root root 3851 May 20 23:49 centos3.xml
-rw-r--r-- 1 qemu qemu 4470079488 May 20 13:05 CentOS-7.5-x86_64-DVD-1804.iso
-rw-r--r-- 1 root root 197120 May 20 15:17 oldboy.qcow2
[root@wyf opt]# mv centos3.raw /data/
[root@wyf opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
- centos7 shut off
- web01 shut off
- web02 shut off
[root@wyf opt]# virsh start centos7
error: Failed to start domain centos7
error: Cannot access storage file '/opt/centos3.raw': No such file or directory
[root@wyf opt]# virsh edit centos7
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/centos3.raw'/>
<target dev='vda' bus='virtio'/>
修改磁盤的路徑
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/data/centos3.raw'/>
<target dev='vda' bus='virtio'/>
保存退出
啟動(dòng)虛擬機(jī)
[root@wyf opt]# virsh edit centos7
Domain centos7 XML configuration edited.
[root@wyf opt]# virsh start centos7
Domain centos7 started
重命名虛擬機(jī)
[root@wyf opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos2 running
5 centos7 running
- web01 shut off
- web02 shut off
[root@wyf opt]# virsh domrename centos7 centos3
error: Requested operation is not valid: cannot rename active domain
[root@wyf opt]# virsh shutdown centos7
Domain centos7 is being shutdown
[root@wyf opt]# virsh domrename centos7 centos3
Domain successfully renamed
掛起虛擬機(jī)
[root@wyf opt]# virsh start centos3
Domain centos3 started
[root@wyf opt]# virsh suspend centos3
Domain centos3 suspended
恢復(fù)虛擬機(jī)
[root@wyf opt]# virsh resume centos3
Domain centos3 resumed
查看虛擬機(jī)對(duì)應(yīng)的端口
[root@wyf opt]# virsh vncdisplay centos3
:1
上述為第一個(gè)端口或5901
wndows vnc-server連接虛擬機(jī)
設(shè)置虛擬機(jī)開機(jī)自啟動(dòng)
原理是利用libvirtd.service開機(jī)自啟動(dòng)以后開啟虛擬機(jī)
[root@wyf opt]# virsh autostart centos3
Domain centos3 marked as autostarted
取消開機(jī)自啟動(dòng)
[root@wyf opt]# virsh autostart --disable centos3
Domain centos3 unmarked as autostarted
手動(dòng)設(shè)置虛擬機(jī)開機(jī)自啟動(dòng)
[root@wyf opt]# cd /etc/libvirt/qemu/
[root@wyf qemu]# ll
total 28
drwxr-xr-x 2 root root 25 May 21 00:13 autostart
-rw------- 1 root root 4418 May 20 15:38 centos2.xml
-rw------- 1 root root 4076 May 21 00:06 centos3.xml
drwx------ 3 root root 42 May 20 13:07 networks
-rw------- 1 root root 4412 May 20 16:44 web01.xml
-rw------- 1 root root 4412 May 20 16:56 web02.xml
[root@wyf qemu]# ln -s /etc/libvirt/qemu
qemu/ qemu.conf qemu-lockd.conf
[root@wyf qemu]# ln -s /etc/libvirt/qemu/centos3.xml /etc/libvirt/qemu/autostart/centos3.xml
[root@wyf qemu]# cd autostart/
[root@wyf autostart]# ll
total 0
lrwxrwxrwx 1 root root 29 May 20 14:05 centos2.xml -> /etc/libvirt/qemu/centos2.xml
lrwxrwxrwx 1 root root 29 May 21 00:16 centos3.xml -> /etc/libvirt/qemu/centos3.xml
設(shè)置虛擬機(jī)console的控制臺(tái)
[root@wyf ~]# ssh root@192.168.122.212
root@192.168.122.212's password:
Last login: Tue May 21 00:22:13 2019
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# reboot
開機(jī)后再次連接
[root@wyf ~]# ssh root@192.168.122.212
root@192.168.122.212's password:
Last login: Tue May 21 00:22:43 2019 from gateway
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# hostname
localhost.localdomain