1.什麼是虛擬化(Virtualization)
虛擬化,是指通過虛擬化技術將一臺計算機虛擬為多臺邏輯計算機。在一臺計算機上同時執行多個邏輯計算機,每個邏輯計算機可執行不同的作業系統,並且應用程式都可以在相互獨立的空間內執行而互不影響,從而顯著提高計算機的工作效率。
虛擬化使用軟體的方法重新定義劃分IT資源,可以實現IT資源的動態分配、靈活排程、跨域共享,提高IT資源利用率,使IT資源能夠真正成為社會基礎設施,服務於各行各業中靈活多變的應用需求。
2.傳統執行模式
- 一臺計算機只能夠執行一種作業系統
3.虛擬機器(Virtual Machine)執行架構
3-1.原生架構(生產環境)
- 虛擬機器軟體直接安裝在計算機硬體上
- 虛擬機器本身就是一個作業系統
- 在這個虛擬機器中可以同時執行多個作業系統
3-2.寄居架構(實驗環境、測試環境)
- 虛擬機器作為應用軟體安裝在作業系統上
- 可以在此應用軟體上安裝多個作業系統
- 直接安裝在硬體上的系統為宿主
4.虛擬機器的平臺產品
4-1.微軟
- Hyper-V(寄居架構)
4-2.Vmware
- VMware Workstation(寄居架構)
- VMware vSphere(原生架構)
5.擴充套件
5-1.KVM kernel-based Virtual Machine
KVM是一個開源的系統虛擬化模組,自Linux 2.6.0之後整合在Linux的各個主要發行版本中。它使用Linux自身的排程器進行管理,所以相對於Xen,其核心原始碼很少。KVM目前已成為學術界的主流KVM之一。
KVM的虛擬化需要硬體支援(如Intel VT技術或者AMD V技術)。是基於硬體的完全虛擬化。而Xen早期則是基於軟體模擬的Para-Virtualization,新版本則是基於硬體支援的完全虛擬化。但Xen本身有自己的程式排程其,儲存管理模組等,所以程式碼較為龐大。廣為流傳的商業系統虛擬化軟體VMware ESX系列是基於軟體模擬的Full-Virtualization。
5.2-Docker開源的應用容器引擎
https://www.sqlsec.com/2019/10/docker2.html
Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的映象中,然後釋出到任何流行的Linux或Windows上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。
一個完整的Docker有以下幾個部分組成:
DockerClient客戶端
Docker Daemon守護程式
Docker Image映象
DockerContainer容器
關於Docker詳情,請見“ARL資訊收集篇章”https://zhuanlan.zhihu.com/p/187505981
6.作業系統 Operating System (OS)
6-1.簡介
6.2來歷
6.3功能
6.4分類
6.4.1-Windows
- Win PC版本:Win XP、Win7、Win10 Win XP常被用於銀行、ATM等更新換代比較慢的地方
- Windows Server伺服器:2003、2008、2012、2016、2019等。常用來搭建IIS,SQLServer伺服器等
6.4.2-類Unix:Linux、Mac OS等
- Unix/Linux系統 Ubuntu和CentOS被用來作為web伺服器,但是Ubuntu不如Centos常見
- Debian ——> Kali、Ubuntu、Deepin
- Red Hat ——> CentOS
6.5Linux特性
KDE:K Desktop Environment
- 一種著名的執行於 Linux、Unix 以及FreeBSD 等作業系統上的自由圖形桌面環境
6.6Linux作業系統優勢
7.安裝虛擬機器Vmware Workstation Pro 16及win2008 R2+Centos7
7-1.Vmware Workstation安裝
- 完後需要輸入序列號
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
- Vmware Workstation Pro16硬體相容性限制比Pro12 少很多
7.2-安裝Windows2008 R2 Enterprise
- 典型、稍後
- 韌體型別;記憶體和處理器2G,2+2即可,可之後根據需求進行再次修改
- 網路型別預設NAT,詳見下方講解
- I/O控制器型別、虛擬磁碟型別預設。底層計算機硬體,協議不一樣,速度不一樣,推薦什麼用什麼。SATA也一樣。那如果裝老系統,如XP,預設就選擇IDE,不然容易藍屏。
- 選擇磁碟:建立新的虛擬磁碟。現有磁碟的意思為使用物理機的磁碟空間(不建議)。若確定使用現有磁碟,則必須要有管理員的許可權。
- 指定磁碟空間。立即分配不建議,不然40GB直接就從物理機沒了,不勾選的話,會慢慢地去佔用物理機的磁碟空間。建議儲存為單個檔案,拷貝的時候速度快。60GB電影和60GB碎片化檔案,轉換速度和轉換率是不一樣的。之後更改名稱和路徑。
- 自定義硬體,一般來說去掉印表機、音效卡即可。需要特別注意USB控制器,根據掛載U盤或者硬碟的格式來定。之後選擇映象檔案,進行下一步,準備安裝
- 安裝windows server 2008 R2 作業系統
- 因為電腦沒有windows系統,所以選擇自定義高階;反之可以升級
- 直接選擇硬碟然後它會自動格式化,如果沒有就自行格式化
7.3-安裝虛擬機器Vmware Tools
- 如果這裡是灰色的,請重啟;如果不是直接安裝,點選這個選項,相當於點選了以下這個選項
- 出現此問題,請手動安裝或者掃描虛擬機器
7.4-Vmware tools的功能
- 螢幕大小自適應
- ctrl+alt 真實與虛擬機器切換滑鼠
- 克隆:注意克隆前需關閉虛擬機器;兩種克隆方式,連結克隆方便,相當於快捷方式,但是依賴原先的虛擬機器;完整克隆就是一個副本。無論哪種,都是為了解決新建相同作業系統浪費時間的問題。
- 快照:注意建立一個快照就會佔不少空間
- 可掛載外部USB
7.5-Windows Server 2008 R2 VMWare虛擬機器識別USB3.0裝置
- 使用VMware Workstation安裝的Windows Server 2008 R2系統虛擬機器預設無法識別USB3.0裝置
Windows Server 2008 R2系統虛擬接入USB3.0裝置後系統提示“未能成功安裝裝置驅動程式”
- 首先開啟VMware 虛擬機器相容 USB3.0
- 並根據提示網址下載USB3.0驅動程式
- 開啟虛擬機器,將下載好的USB3.0驅動程式上傳至虛擬機器。安裝時可能出現以下報錯
- 此報錯解決辦法:安裝系統更新補丁KB2533623即可
-
將下載的補丁上傳至虛擬機器進行安裝,安裝後重啟系統
-
重啟虛擬機器後,再次安裝USB3.0裝置驅動,之後重啟就ok了
7-6.安裝Centos7
- 前面同windows,到這裡開始。選擇第一個安裝;第二個是測試安裝檔案並且安裝;第三個是修復故障
- 選擇美式鍵盤
- 設定時間
- 選擇需要安裝的軟體
- 重點:選擇Server with GUI,然後點選done
- 選擇安裝位置,對磁碟進行劃分
- 選擇'我將會配置分割槽',則需要自己手動;選擇左邊的auto,自動就行了
- 設定root密碼和建立一個賬戶,之後等待下方安裝成功即可
7.7-虛擬機器三種網路配置
橋接模式
-
虛擬機器也會佔用區域網中的一個IP地址,並且可以和其他終端進行相互訪問。
-
如果想把虛擬機器當做一臺完全獨立的計算機看待,並且允許它和其他終端一樣的進行網路通訊,那麼橋接模式通常是虛擬機器訪問網路的最簡單途徑
-
但是,這樣做並不安全,只能是做簡單的測試
NAT模式
- 從外部網路來看,虛擬機器和主機在共享一個IP地址,預設情況下,外部網路終端也無法訪問到虛擬機器
僅主機模式
- 僅主機模式,是一種比NAT模式更加封閉的的網路連線模式
- 僅主機模式的虛擬網路介面卡僅對主機可見,並在虛擬機器和主機系統之間提供網路連線
- 在預設情況下,使用僅主機模式網路連線的虛擬機器無法連線到Internet
8.CentOS 7 配置靜態IP
-
首先配置網路前,先將虛擬網路卡清理掉。
輸入下方命令,等待顯示出命令提示符,然後重啟CentOS 7即可關閉多餘的3,4虛擬網路卡
systemctl disable libvirtd.service
reboot
- 輸入以下命令進入檔案進行配置
cp /etc/sysconfig/network-scripts/ifcfg-ens33 etc/sysconfig/network-scripts/ifcfg-ens33.backup
vim /etc/sysconfig/network-scripts/ifcfg-ens33
將BOOTROTO=dhcp 改為BOOTPROTO=static;再將ONBOOT=no 改為yes
再在ONBOOT下方新增以下內容,並退出儲存
IPADDR=192.168.91.100
GATEWAY=192.168.91.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
- 重啟網路卡,這三種命令任選一種
systemctl restart network
service network restart
/etc/init.d/network restart
- 注意:ifconfig和netstat依賴於net_tools,有時候不能用,可以用ipaddr和ss來代替
當網路卡崩潰時,嘗試輸入此命令除錯
systemctl stop NetworkManager
systemctl diable NetworkManager
systemctl start network.service