lxc-create: No config file specified, using the default config /etc/lxc/default.conf Host is OracleServer 6.5 Create configuration file /var/lib/lxc/ol5test/config Downloading release 5.8 for x86_64 Loaded plugins: changelog, downloadonly, fastestmirror, fs-snapshot, list-data, post-transaction-actions, protectbase, refresh- : packagekit, security, upgrade-helper ol5_u8_base | 1.4 kB 00:00
LXC 의 이름은 ol5test, template 은 /usr/share/lxc/templates/lxc-oracle 을 사용,
Backing-store type 은 btrfs 임을 지정해 준 것이며,
특별히 Release 버젼을 5.8 로 사용하겠다고 지정해 준 것이다.
Release 버젼을 지정 해 주면, yum repository 에서 해당 release 버젼에 맞는 패키지들을
자동 다운로드 및 설치하도록 templates 가 구성되어 있음을 알 수 있다. 올학흘 쫭! +.,+
간단하게 설치과정에 대해서 설명하자면, btrfs 의 파일시스템을 이용하여,
ol5test 라는 서브볼륨을 생성한 뒤, 해당 서브볼륨에,
yum repository 로 부터 얻어온 package 들을 debootstrap 라는 툴을 이용하여
마치 설치과정을 거친 것 처럼 만들어 주는 것이다.
원래는 virsh 를 이용해 empty container 를 libvirt 로 접속하여 직접 console 연결하여
리눅스를 설치하는 것과 같이 접근하는 방법을 소개해 볼까 했는데,
시간상의 문제도 있고, 귀차니즘도 한몫 하여,
간단히 libvirt 를 이용하여 virsh 툴을 통해 마치 xen 이나 kvm 처럼 다룰 수 도 있음을
살짝 언급만 해주고 가겠다.... 나중에 게으름 없어지면 한번 시도해 주겠다....
( ... Snip ... )
Complete! Fixing (downgrading) rpm database from version 9 Rebuilding rpm database Configuring container for Oracle Linux 5.8 Added container user:oracle password:oracle Added container user:root password:root Container : /var/lib/lxc/ol5test/rootfs Config : /var/lib/lxc/ol5test/config Network : eth0 (veth) on virbr0 '/usr/share/lxc/templates/lxc-oracle' template installed 'ol5test' created
자, 완료 되었다. Template 의 설정에 의해 oracle 계정과 root 계정 설정이 되었다.
[Mirr-test /]# cd /var/lib/lxc/ol5test/
[Mirr-test ol5test]# ls -lah total 8.0K drwxr-xr-x. 1 root root 34 Mar 9 13:48 . drwx------. 1 root root 94 Mar 9 13:57 .. -rw-r--r--. 1 root root 2.1K Mar 9 13:48 config -rw-r--r--. 1 root root 207 Mar 9 13:48 fstab drwxr-xr-x. 1 root root 140 Mar 9 13:57 rootfs [root@Mirr-test ol5test]# btrfs subvolume list /var/lib/lxc/ ID 282 gen 298831 top level 5 path test ID 284 gen 270305 top level 5 path test2 ID 398 gen 298831 top level 282 path ol5test/rootfs
[Mirr-test ol5test]# ls -lah rootfs/ total 0 drwxr-xr-x. 1 root root 140 Mar 9 13:57 . drwxr-xr-x. 1 root root 34 Mar 9 13:48 .. drwxr-xr-x. 1 root root 768 Mar 9 13:57 bin drwxr-xr-x. 1 root root 0 Feb 17 2010 boot drwxr-xr-x. 1 root root 130 Mar 9 13:57 dev drwxr-xr-x. 1 root root 1.7K Mar 9 13:57 etc drwxr-xr-x. 1 root root 12 Mar 9 13:57 home drwxr-xr-x. 1 root root 54 Mar 9 13:57 lib drwxr-xr-x. 1 root root 4.2K Mar 9 13:57 lib64 drwxr-xr-x. 1 root root 0 Feb 17 2010 media drwxr-xr-x. 1 root root 0 Feb 17 2010 mnt drwxr-xr-x. 1 root root 0 Feb 17 2010 opt dr-xr-xr-x. 1 root root 0 Feb 17 2010 proc drwxr-x---. 1 root root 90 Mar 9 13:57 root drwxr-xr-x. 1 root root 2.5K Mar 9 13:57 sbin drwxr-xr-x. 1 root root 14 Mar 9 13:57 selinux drwxr-xr-x. 1 root root 0 Feb 17 2010 srv drwxr-xr-x. 1 root root 0 Feb 17 2010 sys drwxrwxrwt. 1 root root 0 Feb 17 2010 tmp drwxr-xr-x. 1 root root 122 Mar 9 13:57 usr drwxr-xr-x. 1 root root 126 Mar 9 13:56 var
5. Start to LXC node
모든 준비는 끝났다, 이제 만들어진 컨테이너의 Power button 만 살짜쿵 눌러주는 것이다.
# lxc-start -n ol5test
INIT: version 2.86 booting
Welcome to Oracle Linux Oracle Linux Server release 5.8 Press 'I' to enter interactive startup.
Setting hostname ol5test: [ OK ] Mounting local filesystems: [ OK ] Enabling /etc/fstab swaps: [ OK ]
Kernel 2.6.39-400.214.3.el6uek.x86_64 on an x86_64
ol5test login: root Password:
root password 는 root 로 설정되어 있다.
ol5test login : root
Password :
Last login: Sun Mar 9 00:05:40 on lxc/console [root@ol5test ~]# [root@ol5test ~]# ls [root@ol5test ~]# cat /etc/enterprise-release Enterprise Linux Enterprise Linux Server release 5.8 (Carthage) [root@ol5test ~]# rpm -qa | grep glibc glibc-2.5-81 glibc-common-2.5-81
짜잔~ 보시는 바와 같이, kernel 은 물론 Host 의 커널을 이용하지만,
나머지 패키지들은.. 특히 glibc 등은 2.5 버젼을 사용하고 있음을 알 수 있다.
어차피 개발팀에서 요구하는 것들은 glibc 와 기타 5.X 대에서 사용 가능한
개발 툴들을 요구하는 것이였기에 Kernel 에 대한 K-api 등은 특별히 신경 쓸 필요가
없는 상황이므로, LXC 를 이용해 커널을 제외한 모든 환경을,
훌륭하게 제공을 되는 것이다.
( 사실, 잘 들어보면, 굳이 Legacy 버젼을 고집해야 할 필요가 없는 환경이였다. )
6. Advanced run to LXC node
일단 lxc-start 를 통해 실행하게 되면, host 로의 접근을 위해서는 다시 세션을 열거나 해야한다.
귀찮다면 lxc-start 실행 시 daemon 모드로 실행이 가능하다.
# lxc-start -n ol5test -d
# lxc-info -n ol5test state: RUNNING pid: 17031
# ps ax
17028 ? Ss 0:00 lxc-start -n ol5test -d 17031 ? Ss 0:00 init [3]
간단하지 않은가? init [3] 저녀석이 container 로 돌아가고 있는 실제 프로세스다.
접속은 간단히 lxc-console 명령을 통해 접속이 가능하며,
sshd 가 올라와 있기 때문에 새로운 session 을 열어 접속 하면 된다.
# ssh 192.168.122.130 The authenticity of host '192.168.122.130 (192.168.122.130)' can't be established. RSA key fingerprint is ba:ca:83:68:c4:d0:94:eb:3c:75:17:db:cb:7b:76:2d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.122.130' (RSA) to the list of known hosts. root@192.168.122.130's password: Last login: Sun Mar 9 00:29:26 2014 [root@ol5test ~]#
이로써, 개발팀에서는 'kernel 이 약간 이상하다?' 라고 생각 할 뿐,
운용에 전혀 문제가 없게 되었다!! 밥팅이들-_-
개발 참 발로해... 국내 최대의 게임사라는 아이들이 ㅋㅋ
오랜만에 포스팅 끝..
담엔 간단히 Kpartx 를 함께 이용해 이미 존재하는 vDIsk 의 내용을 확인하는 방법과,