歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux容器虛擬技術LXC簡明手冊

Linux容器虛擬技術LXC簡明手冊

日期:2017/2/28 16:13:12   编辑:Linux教程

LXC容器虛擬化
經過一些折騰,初步在自己的工作筆記本上部署了LXC虛擬。這是一個非常輕量級的虛擬解決方案,特別適合硬件有限的測試環境,也是我們系統管理員技術鍛練的良好環境。

一些介紹信息,請參考 Linux容器虛擬化技術介紹 http://www.linuxidc.com/Linux/2011-06/37350.htm

安裝
以下安裝實踐是在Gentoo x86_64平台上實現的,如果采用Red Hat系統或Debian,應該只是在軟件安裝上有區別,但使用配置方法應該相同。

安裝lxc用戶工具
同步portage樹
1 emerge --sync

由於當前LXC 軟件包被masked (尚不成熟),所以需要手工去除屏蔽。
1
2 echo app-emulation/lxc >> /etc/portage/package.unmask
echo app-emulation/lxc >> /etc/portage/package.keywords

安裝
1 emerge -av lxc

當編譯安裝完成時,可能會看到列出的內核參數有哪些沒有被激活。
完整的內核要求如下

# namespaces
CONFIG_NAMESPACES / "Namespaces"
CONFIG_UTS_NS / "Utsname namespace"
CONFIG_IPC_NS / "Ipc namespace"
CONFIG_PID_NS / "Pid namespace"
CONFIG_USER_NS / "User namespace"
CONFIG_NET_NS / "Network namespace"
DEVPTS_MULTIPLE_INSTANCES / "Multiple /dev/pts instances"

# control groups
CONFIG_CGROUPS / "Cgroup"
CONFIG_CGROUP_NS / "Cgroup namespace"
CONFIG_CGROUP_DEVICE / "Cgroup device"
CONFIG_CGROUP_SCHED / "Cgroup sched"
CONFIG_CGROUP_CPUACCT / "Cgroup cpu account"
CONFIG_CGROUP_MEM_RES_CTLR / "Cgroup memory controller"
CONFIG_CPUSETS / "Cgroup cpuset"

# misc
CONFIG_VETH / "Veth pair device"
CONFIG_MACVLAN / "Macvlan"
CONFIG_VLAN_8021Q / "Vlan"將以上配置添加到內核編譯配置文件中重新編譯內核。Red Hat 和 Debian尚沒有實踐,不過發行版本通常會通過模塊方式或預編譯支持這些參數,可能不需要調整。

安裝Guest操作系統
在網絡配置上,是將虛擬機的虛擬交換機br0 和虛擬網卡dummy0 綁定,這樣可以不占用公司網絡資源作為虛擬內網運行。如果要將虛擬機對外提供服務,則綁定實際物理網卡如eth0 。

設置網絡
配置 /etc/conf.d/net

bridge_br0="dummy0"
config_dummy0="null"
config_br0="10.1.11.1/32 brd 10.1.11.255"
routes_br0="10.1.11.0/24 via 10.1.11.1"

然後設置軟連接

cd /etc/init.d
ln -s net.lo net.br0

啟動

1 /etc/init.d/net.br0 start

要允許容器中主機訪問外部
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

cgroup掛載設置
設置cgroup 掛載(參考 http://lxc.teegra.net/ )

1
2 mkdir -p /cgroup
mount none -t cgroup /cgroup

為每次啟動系統時自動掛載,在/etc/fstab 中添加

1 none /cgroup cgroup defaults 0 0

案例安裝
https://www.granite-mtn.net/xwiki/bin/view/Howto/Linux+Containers 提供了各種guest安裝的案例,比較簡單易用。
https://www.ibm.com/developerworks/linux/library/l-lxc-containers/ 是IBM發起的LXC項目,詳細介紹了如何build一個debian系統

安裝debian虛擬機
安裝debootstrap 工具
1 emerge dev-util/debootstrap

創建一個debian容器
sid 是debian的unstable版本代號,不過debian的unstable相比較很多其他發行版本,已經是很穩定的版本了。只不過debian質量 控制要求很高,stable版本往往選擇“久經考驗”的軟件版本所以不能嘗試最新的開源技術,采用debian的unstable版本可以使用最前沿的開 源技術,對於我們日常應用已經足夠穩定。對於服務器部署,可以采用stable版本。

1 mkdir -p /lxc/debian

1 debootstrap sid /lxc/debian http://ftp.us.debian.org/debian/

如果要創建大量的container,則可以生成一個tar包以便今後安裝

1 debootstrap --make-tarball=sid.packages.tgz sid http://debian.osuosl.org/debian/

配置文件/etc/lxc/lxc-debian.conf
# Container with network virtualized using a pre-configured bridge named br0 and
# veth pair virtual network devices
lxc.utsname = debian
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.hwaddr = 4a:49:43:49:79:bf
lxc.network.ipv4 = 10.1.11.2/24
lxc.network.name = eth0
lxc.mount = /lxc/debian/fstab
lxc.rootfs = /lxc/debian

Copyright © Linux教程網 All Rights Reserved