隨著雲計算的不斷發展,計算資源不斷集中於大規模的伺服器集群上。為了充分發揮硬體潛力,提高伺服器效能,虛擬化技術由此誕生。
所謂虛擬化技術,是指將計算元件和硬體隔離開來,隱藏底層的硬體物理特性,為使用者提供抽象、統一的模擬計算環境,從而可以適應龐大的硬體資源而不至於浪費效能。如intel-vt和amd-v技術可以單cpu模擬多cpu執行,允許同一平台同時執行多個作業系統,且應用程式和服務在相互獨立的空間內執行而不影響,從而盡可能的壓榨硬體效能並提高工作效率。
虛擬化級別可分為:硬體抽象層、指令集層、作業系統層、基礎執行庫層、應用程式層。
容器與docker
顧名思義,容器就是裝東西用的,比如我們都學過c++ stl的基本容器型別,在作業系統級別,容器就是作業系統為不同的使用者或程序分配的具有一定相互獨立空間(包括記憶體分頁空間、cpu時鐘分配、硬碟空間、程序空間、執行庫等、ip位址)。docker就是容器的一種,在早期版本使用的是linux自帶的lxc(linux container),現在使用的是libcontainer來實現。
進行虛擬化時,很重要的一部分工作就是計算資源的分配和不同虛擬機器/容器之間的通訊,在建立docker映象時,不僅可以顯示地為每個映象分配資源,同時還會根據分配的比例不同確定各自的權重,從而可以在系統負荷高的時候保證權重高的映象不會被權重低的映象阻塞,在負荷低的時候,權重低的映象也能得到足夠的資源應對突發的壓力。彈性的分配機制保證了硬體的最大利用效率。
管理虛擬機器
1、虛擬機器的管理命令
virt-viewer 虛擬機器名稱 ##顯示虛擬機器
virsh start 虛擬機器名稱 ##開啟指定虛擬機器
virsh list ##顯示正在執行的虛擬機器
virsh list --all ##顯示所有虛擬機器
virsh shutdown 虛擬機器名稱 ##正常關閉指定虛擬機器
virsh destroy 虛擬機器名稱 ##強制關閉指定虛擬機器
virsh define 虛擬機器 ##恢復虛擬機器
virsh undefine 虛擬機器 ##刪除虛擬機器的配置(硬體資訊檔案)
virsh create 虛擬機器.xml ##利用虛擬機器硬體資訊檔案開啟虛擬機器,只是一次性的
2、虛擬機器拷貝
虛擬機器是由兩部分組成:硬體資訊檔案和硬碟檔案
/etc/libvirt/qemu/虛擬機器.xml ##虛擬機器硬體資訊檔案
/var/lib/libvirt/images/虛擬機器.qcow2 ##虛擬機器硬碟檔案
例項:將虛擬機器westos從一台虛擬機器拷貝到另一台虛擬機器,其中/mnt充當u盤
[root@foundation16 ~]# cd /etc/libvirt/qemu/
[root@foundation16 qemu]# ls
desktop.xml networks server.xml westos.xml ##此處存在westos.xml檔案,虛擬機器westos的前端檔案
[root@foundation16 qemu]# cp westos.xml /mnt/ ##將westos.xml硬體資訊檔案拷貝到/mnt/
[root@foundation16 qemu]# cd /var/lib/libvirt/images/
[root@foundation16 images]# ls
generic-1.qcow2 rh124-desktop-vdb.qcow2 rh124-server-vdb.qcow2
generic.qcow2 rh124-desktop.xml rh124-server.xml
rh124-desktop-vda.ovl rh124-server-vda.ovl westos.qcow2 ##找到虛擬機器硬碟westos.qcow2
rh124-desktop-vda.qcow2 rh124-server-vda.qcow2
rh124-desktop-vdb.ovl rh124-server-vdb.ovl
[root@foundation16 images]# mv westos.qcow2 /mnt/ ##將硬碟westos.qcow2 拷貝到/mnt/中
[root@foundation16 images]# cd /mnt/ ## 模擬虛擬機器拷貝
[root@foundation16 mnt]# ls
westos.qcow2 westos.xml ##此時/mnt/檔案中存在已拷貝的westos.xml和westos.qcow2
[root@foundation16 mnt]# virsh create westos.xml ##執行此命令前,先刪除虛擬機器,方便模擬虛擬機器拷貝
error: failed to create domain from westos.xml
error: cannot access storage file '/var/lib/libvirt/images/westos.qcow2' (as uid:107, gid:107): no such file or directory
[root@foundation16 mnt]# mv /mnt/westos.qcow2 /var/lib/libvirt/images/
#不存在 '/var/lib/libvirt/images/westos.qcow2',將檔案新增到路徑中
[root@foundation16 mnt]# virsh create westos.xml ##將虛擬機器刪除,重新建立
domain westos created from westos.xml
[root@foundation16 mnt]# virsh define westos.xml ##永久建立
domain westos defined from westos.xml
3、虛擬機器快照
虛擬機器的快照只是乙個儲存更改資訊的檔案,在虛擬機器被讀取時還是讀取母盤中的內容。
在虛擬機器管理工具中,把"快照.qcow.2"import匯入到新的虛擬機器中即可使用。
1> 虛擬機器快照命令
qemu-img create -f qcow2 -b 母盤.qcow2 快照.qcow2
1例項:快照虛擬機器建立步驟
虛擬化技術的歷史
虛擬化與容器化
安裝 1.使用root許可權操作 安裝命令 yum install docker 2.檢查安裝是否成功 檢查命令docker version 若輸出了 docker 的版本號,說明安裝成功了,可通過以下命令啟動 docker 服務 3.docker啟動命令service docker start 一...
虛擬化 VS 容器化
本文講的是虛擬化 vs 容器化,編者的話 以 docker 為代表的容器技術一度被認為是虛擬化技術的替代品,然而這兩種技術之間並不是不可調和的。作者分別列舉了容器技術以及虛擬化技術的優缺點,並提出將兩者結合取長補短的解決方案。容器為應用程式提供了隔離的執行空間 每個容器內都包含乙個獨享的完整使用者環...
通過 Linux 容器進行虛擬化
簡單介紹 linux 容器是一種輕量級 虛擬化 方法,用於在單個控制主機上同一時候執行多個虛擬裝置 容器 還有乙個可用來描寫敘述 linux 容器所執行的操作的術語是 容器化 linux 容器提供作業系統級別的虛擬化,當中的核心控制隔離的容器。容器通過核心控制組 cgroup 和核心命名空間進行隔離...