推薦-內核虛擬化技術——LXC初體驗

一、Cgroups

1.1 介紹

Cgroup是Control group的簡稱。最初由由Google的工程師(主要是Paul Menage和Rohit Seth)在2006年以“process containers(進程容器)”的名字開始的, 在2007年的晚些時候被重命名為“控制組”并被合并到了2.6.24版的內核中,現已成為Linux內核中的一個功能,是Linux內核提供一種可限制、記錄、隔離進程組所使用的物理資源(如:CPU、Memory、I/O等)的機制。

1.2 作用

cgroup是用于將一個或多個進程關聯至一個 “進程組”,并且可以統一的進行監控和管理容器,形成對資源管理提供了統一的架構。根據監控或管理的需要,運行中的系統上很可能存在多個Cgroup,而這些Cgroup被組織成了層級結構,類似多根倒置的樹狀結構)。事實上,Cgroups是一種資源控制機制,其資源配置的最小單位是所謂的Subsystem——一種資源控制器,通過將資源劃分為多種不同的類型(CPU、內存、磁盤輸入輸出等)并將這些類型的資源關聯至層級結構中指定的Cgroup實現資源分配。

備注:cgroups是實現IaaS虛擬化(kvm、lxc等),PaaS容器沙箱(Docker等)的資源管理控制部分的底層基礎

二、lxc

2.1 介紹

LXC是LinuX Container的簡稱,提供輕量級的虛擬化,是一種基于容器的操作系統層級的虛擬化技術。利用新版Linux內核的特性(Cgroups等)實現的無需hypervisor的輕型虛擬化技術。容器能有效的將由單個操作系統管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有沖突的資源使用需求。

LXC能夠虛擬出一個完整的系統環境(rootfs),也可以僅為單個或多個應用程序提供虛擬化運行環境。從使用方式來看,它更像是增強版的chroot環境,提供一個擁有自己進程、網絡空間的虛擬環境。

2.2 優勢

  • 與宿主機使用同一個內核,性能損耗??;

  • 輕量級隔離,在隔離的同時還提供共享機制,以實現容器與宿主機的資源共享;

  • 容器可以在CPU核心的本地運行指令,不需要任何專門的解釋機制;

三、LXC使用說明

3.1 lxc命令介紹

  • lxc-create 創建虛擬機

        -t:指定根據哪個模板創建虛擬機 

        -n:指定虛擬機的名稱

  • lxc-checkconfig 檢查運行環境及配置信息

  • lxc-start 開啟虛擬機

        -n:指定虛擬機名稱

        -d:指明讓虛擬機在后臺運行

  • lxc-stop 關閉虛擬機

備注:命令其他參數的詳細用法可以查看幫助信息

3.2 lxc的模板說明

默認情況下lxc的模板存放路徑為 /usr/share/lxc/templates/ ,里面存放著各操作系統的模板,對于CentOS而言,默認安裝時以最小化操作系統安裝。并且在使用模板安裝時會需要連接其內部指向的網絡進行下載安裝,如果有需要,可以修改里面的參數,讓其指向我們內部的yum倉庫進行安裝。

3.3 lxc的虛擬機默認安裝路徑

lxc安裝的虛擬機默認都是安裝在/var/lib/lxc 路徑下。

3.4 lxc默認配置信息

在創建虛擬機時,默認會去讀一個配置信息,而配置信息文件是 /etc/lxc/default.conf

[root@localhost templates]# vim /etc/lxc/default.conf
lxc.network.type = veth   #創建出來的虛擬機的是以什么名字命名的網卡名稱
lxc.network.link = virbr0 #指定所使用的橋接網卡的名字
lxc.network.flags = up  #網絡的狀態信息

3.5 其他需要了解

在安裝完CentOS時,系統會自動生成一個root的密碼,而密碼的文件的路徑是在 /var/lib/lxc 下你所安裝的虛擬機,其中有一個文件名為 tmp_root_pas ,該文件存放著root默認的密碼信息

四、CentOS 6.5上使用lxc-1.0.5

我們都知道在VMware上安裝虛擬機都需要使用到一個叫橋接的網絡,這樣的目的是為讓其他主機能夠訪問VMware里的虛擬機,在安裝完VMware Workstation時,程序默認會安裝虛擬網卡,目的是讓虛擬主機進行通信。

在CentOS上安裝虛擬化軟件,為了讓系統里的虛擬機能夠訪問網絡,我們也需要使用類似方法,將物理網卡虛擬成為交換機,也稱之為網橋。

4.1 所需程序包

  • bridge-utils    #CentOS下網橋管理工具所需的依賴包

  • lxc-1.0.5-1.e16.x86_64.rpm     #lxc程序包

  • lxc-libs-1.0.5-1.e16.x86_64.rpm  # lxc所需的庫文件程序包

  • libcgroup     #Cgroup程序包

4.2 安裝所需的依賴包

1、安裝bridge-utils 程序包

[root@localhost ~]# yum install bridge-utils -y

2、安裝libcgroup程序包

[root@localhost ~]# yum -y install libcgroup

3、安裝lxc所需的程序包及庫文件程序包

[root@localhost ~]# yum -y install lxc-libs-1.0.5-1.el6.x86_64.rpm lxc-1.0.5-1.el6.x86_64.rpm

4.3 步驟

1、關閉NetworkManager服務,關閉自動啟動功能

注意:NetworkManager不支持橋功能,所以必須關閉,并且保證其開機不會自動啟動

[root@localhost ~]# service networkmanager stop   #關閉服務
[root@localhost ~]# chkconfig networkmanager off   #關閉自動開機啟動

2、啟動network服務和cgconfig服務,并確保開機自動啟動

[root@localhost ~]# service network start
[root@localhost ~]# service cgconfig start
[root@localhost ~]# chkconfig cgconfig on

3、為虛擬網橋接口添加配置文件ifcfg-br0

[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0   #可以通過拷貝將eth0的模板復制給br0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0   #修改br0配置

    111.jpg

4、將做橋接的物理網卡關聯至前面定義的橋接設備

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

    1.jpg

5、重啟網絡服務

[root@localhost ~]# service network restart

    2.jpg

   #正常而言ssh遠程連接是不應該被斷開的,因為其網卡已經正常變為橋接網絡。

6、查看當前網卡設備信息,br0已經正常使用。

    3.jpg

7、修改默認配置信息

[root@localhost templates]# vim /etc/lxc/default.conf
lxc.network.type = veth
lxc.network.link = br0  #這個要和先前創建的網橋的名稱對應
lxc.network.flags = up

8、檢查lxc配置和環境

[root@localhost templates]# lxc-checkconfig

    4.jpg

9、配置lxc-CentOS模板

因為默認情況下,在使用lxc-centos模板時,會從互聯網下載對應的系統安裝的程序包,而此時如果你的虛擬機無法連接互聯網,可以將訪問路徑指向本地yum倉庫中安裝使用。

[root@localhost mnt]# vim /usr/share/lxc/templates/lxc-centos
[base]
name=CentOS-$release - Base
baseurl=file:///mnt

    5.jpg

備注:因為此處沒有使用到update,所以已將[update]字段刪除,如有需要可以重新添加指定

10、創建CentOS虛擬機

[root@localhost ~]# lxc-create -n centos6 -t /usr/share/lxc/templates/lxc-centos

#指定虛擬機的名稱為centos6

     6.jpg

11、設定root密碼

[root@localhost ~]# chroot /var/lib/lxc/centos6/rootfs passwd

12、啟動虛擬機

[root@localhost mnt]# lxc-start -n centos6

     7.jpg

備注:如果直接這樣啟用,虛擬機將會占用當前終端,所以可以加 –d 參數,將其在后臺啟用,當系統啟用完成后,可以使用ssh遠程連接使用。

13、測試

     8.jpg

此時可以對虛擬機進行操作,比如重啟、關機、安裝軟件等操作。


原創文章,作者:螃蟹,如若轉載,請注明出處:http://www.www58058.com/13929

(0)
螃蟹螃蟹
上一篇 2016-03-30 22:17
下一篇 2016-03-31 19:31

相關推薦

  • ELK 日志分析實例

    網海過客www.chinasa.net ELK 日志分析實例一、ELK-web日志分析二、ELK-MySQL 慢查詢日志分析三、ELK-SSH登陸日志分析四、ELK-vsftpd 日志分析 一、ELK-web日志分析 通過logstash grok正則將web日志過濾出來,輸出到Elasticsearch 搜索引擎里,通過Kibana前端展示。  …

    Linux干貨 2016-06-03
  • 細述LVM

     前言:     LVM(Logical Volume Manager)是基于內核的一種邏輯卷管理器,LVM適合于管理大存儲設備,并允許用戶動態調整文件系統大小。此外,LVM的快照功能可以幫助我們快速備份數據。LVM為我們提供了邏輯概念上的磁盤,使得文件系統不再關心底層物理磁盤的概念。 看圖識LVM &nbs…

    Linux干貨 2015-06-15
  • 初識Linux

    本文對計算機組成及其功能、Linux的發行版、以及Linux的哲學思想進行了簡單的介紹;同時對Linux系統中常用的基礎命令以及如何獲取幫助信息進行了詳細的說明。

    2018-01-14
  • openssh及基于ssl的https的配置

    openssh的簡介             OpenSSH 是 SSH 協議的免費開源實現。SSH協議族可以用來進行遠程控制, 或在計算機之間傳送文件。 而實現此功能的傳統方式,如telnet(終端仿真協議)、 rcp ftp、 rlogin、rs…

    Linux干貨 2017-05-30
  • 我的第一篇博客

        對于一個連日記都懶得寫的人來說,寫博客博客還真是一個難題。但是為了能讓自己有所進步有所提高、更是為了記錄自己逐步成長的過程,還是下定決心記錄下在接下來的日子里的點點滴滴。當然,這點點滴滴指的是 —— 知識     我想剛學linux的新手眼里除了圖形化就只有黑白兩種顏色了吧!但是為了提高自己…

    Linux干貨 2017-07-15
  • 計算機(服務器)的基礎知識

    計算機(服務器)基礎知識  計算機系統由硬件系統與軟件系統兩大部分組成 一、計算機(Computer)):又稱電腦,是一種能自動接收和存儲信息,并按照存儲在其內部的程序對海量數據進行自動、高速地處理,然后把處理結果輸出的現代化智能電子設備。 發展歷史:       第一代計算機(1946-1957)…

    Linux干貨 2017-02-15

評論列表(1條)

  • stanley
    stanley 2016-04-05 22:33

    已置頂

欧美性久久久久