今天想在机器上搭建一个我用Go写的玩的一个分布式文件小系统,可我只有一台Laptop和一台Desktop,两台都装的Ubuntu 12.04。我需要多几个隔离的OS来试验多节点。以前阅读看到过Linux Container的介绍,于是研究了下,用它来搭建了虚拟环境,在此作个记录,方便大家:
首先,安装 Linux Container:

1
$ sudo apt-get install lxc

直接“yes”,继续完成安装。这一步能比较快的完成,只有13M多点的文件要下载。当然,完成这一步也只是完成了容器程序的安装,虚拟OS的安装在后面。

安装完Linux Contaner后,可以在/usr/lib/lxc/templates目录下看到,可以安装哪些OS进来。

1
2
3
4
5
6
7
8
9
10
$ ll /usr/lib/lxc/templates/
drwxr-xr-x 2 root root 4096 721 11:02 ./
drwxr-xr-x 4 root root 4096 721 11:02 ../
-rwxr-xr-x 1 root root 8227 221 04:29 lxc-busybox\*
-rwxr-xr-x 1 root root 9806 221 04:29 lxc-debian\*
-rwxr-xr-x 1 root root 10520 221 04:29 lxc-fedora\*
-rwxr-xr-x 1 root root 9094 221 04:29 lxc-opensuse\*
-rwxr-xr-x 1 root root 5115 221 04:29 lxc-sshd\*
-rwxr-xr-x 1 root root 19736 221 04:29 lxc-ubuntu\*
-rwxr-xr-x 1 root root 10590 221 04:29 lxc-ubuntu-cloud\*

接下来,可以建立虚拟OS了:

1
$ sudo lxc-create -t ubuntu -n lxc\_ubuntu\_1

参数说明:

  • -t: OS类型

  • -n: 虚拟OS的名称

这一步需要比较长的时间,当然,也取决于你的网络下载速度。

虚拟OS的版本,如果安装时没特别指定参数,与Host OS的版本是相同他的,比如host OS是i386,那安装的也是i386。可以用以下参数指定版本:

1
sudo lxc-create -t ubuntu -n lxc\_ubuntu\_1 -- -r lucid -a i386

虚拟OS安装完成后,注意输出最后两行的用户名和密码提示,这是登录虚拟OS的默认帐号。

你可以通过下面方式查看:

1
2
3
4
$ ll /var/lib/lxc/
drwxr-xr-x 4 root root 4096 721 20:39 ./
drwxr-xr-x 63 root root 4096 721 11:02 ../
drwxr-xr-x 3 root root 4096 721 14:14 lxc\_ubuntu\_1/

至此,虚拟OS安装完成了,你可以先更新package。

1
2
$ sudo apt-get updata
$ sudo apt-get upgrade

至此,可以启动虚拟OS了。

1
$ sudo lxc-start -n lxc\_ubuntu\_1

同时,如果需要安装多个虚拟OS,可以使用复制命令完成复制:

1
$ sudo lxc-clone -o lxc\_ubuntu\_1 -n lxc\_ubuntu\_2

也可以删除已安装的虚拟OS:

1
$ sudo lxc-destroy -n lxc\_ubuntu\_2