推薦-內核虛擬化技術——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
下一篇 2016-03-31

相關推薦

  • shell練習

    1 、編寫腳本/root/bin/systeminfo.sh, 顯示當前主機系統信息, 包括主機名,IPv4 地址,操作系統版本,內核版本,CPU 型 號,內存大小,硬盤大小。 運行后結果是: 2 、編寫腳本/root/bin/backup.sh ,可實現每日將/etc/ 目錄備 份到/root/etcYYYY-mm-dd中 運行結果是: 3 、編寫腳本/r…

    Linux干貨 2016-08-15
  • Linux-第一周作業

    1.計算機組成及其功能 計算機主要分為三部分: A、輸入單元:包括鍵盤、鼠標、掃描儀、手寫板、觸摸屏等。 B、中央處理器(CPU):含有算術邏輯、控制、記憶等單元。 C、輸出單元:例如屏幕、打印機等。 我們通過輸入設備(如鼠標與鍵盤)來將一些數據輸入到PC里面,然后再由PC的功能處理成為圖表或文章等信息后,將結果傳輸到輸出設備,如屏幕或打印機上面,這是計算機…

    Linux干貨 2016-07-07
  • lvs DR模型

    LVS 負載均衡 使用lvs部署負載均衡服務器  實現4層tcp調度 lvs一共四種模式   分別是NAT  DR  TUN和FullNAT模式 NAT模式和DR模式部署相對簡單而且實用性強 現在部署一下  LVS的DR模型 首先準備三臺主機  使用的三臺系統都是centos 7…

    2017-05-15
  • 用戶、組、權限管理練習

    用戶、組管理練習 一、創建的內容:        1、組Rockets,Knicks,Cavaliers,他們的GID分別是501,540,530。    2、用戶James(theBeard),Chris(CP3),Lebron(King),Carmelo(Melo),他們的uid分別是…

    Linux干貨 2017-09-03
  • class8 文本處理工具sed和vim編輯器

    一、處理文本的工具sed     Stream EDitor,  行編輯器     sed是linux上一款比較重要的流編輯器。     特點:一次處理一行內容,處理完成后,把緩沖區的內容送往屏幕。這樣不斷重復,直到文件末尾。 &…

    Linux干貨 2016-08-11
  • N26——第三周作業

    一、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可 [root@localhost ~]# who | cut -d ' ' -f1 | uniq root zhaoyujia 二、取出最后登錄到當前系…

    Linux干貨 2017-01-14

評論列表(1條)

  • stanley
    stanley 2016-04-05 22:33

    已置頂

欧美性久久久久