虛擬化

本文章內容:

虛擬化概述。

 

1. 虛擬化

1.1 主機級虛擬化

1.1.1 類型一

1.1.2 類型二:VMware Workstation、Virtual Box、KVM、Xen

1.2 容器級虛擬化

2. 容器歷史由來

FreeBSD上的jail → Linux Vserver(chroot) → LXC → Docker

3. 容器隔離的資源

UTS、Mount、IPC、PID、User、Net,由名稱空間namespace隔離

4. CGroups (Control Groups)

把系統級的資源分成多個組,再把每一個組內的資源量分配到特定的用戶空間的進程上。

  • blkio:塊設備IO
  • cpu:CPU
  • cpuacct:CPU資源使用報告
  • cpuset:多處理器平台上的CPU集合
  • devices:設備訪問
  • freezer:掛起或恢復任務
  • memory:記憶體用量及報告
  • perf_event:對cgroup中的任務進行統一性能測試
  • net_cls:cgroup中的任務創建的數據報文的類別標識符

5. 容器最核心的三個組成

namespaces、chroot、cgroups,在內核級實現。

6. LXC、Docker

容器是Linux內核中的技術,LXC是容器技術的前端工具,使容器技術更容易使用,而Docker是LXC的增強版,後來Docker研發自己的容器引擎叫libcontainer,更之後叫runC。LXC → Libcontainer → runC

7. 編排工具

Docker自己的編排工具:machine + swarm + compose

ASF:mesos + marathon

Google:kubernetes (K8S)