가상화 시스템에서 자원컨트롤에대한 신요소로 Linux Container 라는 녀석이 있다.


엄밀히 얘기하면 Full Virtualization 을 위한 메카니즘은 아니지만, 서버 가상화에대한


뚜렷한 효용성을 못느끼는 분들이나, 서버팜의 확실성에 대한 강한 신뢰를 내려놓지


못하는 불신으로 똘똘 뭉친 고리타풍(ㅋㅋ) 하신 분들은 한번쯤 보아둬도 좋을듯하다.



뚜구둥~ 쉽게 만들어 지었다..


템플릿은 입맛에 맞게 수정하면 되고, 간단하게 가상머신이 하나 생성되는 셈이니,


왜 이녀석을 사용하는게 좋은지 다들 알것이다.


구지 에뮬레이팅되는 가상머신을 설치하여 GUI 등을 이용해 구동할 필요 없이,


간단한 자원 할당을 통해서도 이렇게 가상머신의 역할을 수행 할 수 있다는 점,


그리고 실제로 가상화에 대한 개념 그리고 발전모습을 더 디테일하게 밟아 볼 수


있다는 점이 내가 LXC 를 보고 열광하며 글을 쓰게 된 이유임을 알린다..

( 사실은 CGroup 이나 BtrFS 등은 RedHat 에 찾아보니 이미 새로운 문서들이 있더라는 ㅠㅠ )


 - 예고편 2부

 2부에서는 실제 운용하고 모니터링하는 부분에 대해서 서술하겠다.


 Bridge 네트워크를 이용해서 외부와도 통신이 가능한 Container 를 만들고,

 VLAN 을 이용해 Segement 의 구분을 지은 통신을 하는 모습,


 컨테이너의 CPU 나 Network 등 리소스를 직접적으로 Controlling 하는 부분,

 그리고 몇가지 기타 유용한 LXC 커맨드들을 살펴보도록 하겠다..


빠이빠이~


posted by mirr

댓글을 달아 주세요

Skills/Cloud Computing 2012.02.17 17:34
요즘 이것저것 새롭게 하는게 많아 뜸해져 있던 차에,

간만에 BtrFS 에 대해서 스위스 아미 나이프에 비교한 LWN 기사를 읽고

잽싸게

추후에는 XFS, NoSQL 류 그리고 클라우드에 대한 패러다임 을 얘기해 보고 싶다.




일단 1부니까 여기까지하고, 담포스팅에서는 성능과

ZFS 등과의 비교 위주로 정리를 해봐야 겠다.

posted by mirr

댓글을 달아 주세요

Skills/mY Technutz 2010.10.29 23:13
udev 를 간간히 사용해 줘야 하는데, 디버깅 방법이다.

이것도 해보면 나름 재밌다 :)

# udevd --daemon --debug-trace --verbose &>udevd-debug.log
# udevcontrol log_priority=debug
# udevcontrol env STARTUP=1
# udevmonitor --env
posted by mirr

댓글을 달아 주세요

  1.  Addr  Edit/Del  Reply Favicon of http://ydhoney.egloos.com BlogIcon ydhoney

    하루빨리 RHCS 작동시켜 놓으라능;; =3=33

    2010.11.10 03:14

Skills/System 2010.03.05 01:15
본 글은 스스로에게 어디까지 기술력을 보유해야 한다고 생각하는 건지 자문하는 글로써,
정리되지 않던 글들은 다시 정리하여 공개합니다. 문제가 되는 부분들은 언제든지 얘기해 주십시오.

어느정도 진행되는 동안 R 사의 GSS 에서는 고객의 의문사항들을 어느정도 답변 해 주고 있던 상태..

고객의 심도있던 Thread 와 메모리의 상관관계, VM split 모델에 대한 심도깊은 관계 (spilt 등 )

최대 스레드 값을 계산 할 수 있는 공식, Lowmempage 부족의 의미, Lowmem 부족상태에서

swap 이 사용되지 않는 경우, cache memory  와 swap 의 관계, 메모리 관리 ( linux-mm ) 알고리즘,

2.4 커널과 2.6 커널의 차이점 ( 나름 상세하게 - 메모리 관리에서부터 쭈~~~욱 )

paging 매카니즘 등등... 거의 세미나수준으로이지 않나 싶게..

GSS 에서는 나에게 전화로 혹시 세미나하는거냐고 매우 지원하는데 깊은 심도로 인해 어려움이 있었다고

난이도와 난감함을 우스개소리로 했을 정도.....ㅠㅠ

엔지니어레벨에서는 이해를 하겠으나 설명하기는 난감한 상황 발생...

어찌됐든 현재는 장애 재현이 강제로는 발생하지 않는 상황에 돌입하여버린것이다.

이 문제를 해결하기 위하여 우리는 고객에게 각종 리눅스 인터널적인 매카니즘 및 알고리즘들과,

OS 의 문제가 아님을 판명하려 노력해야 했다. ( 머리터지는줄 알았.... )

이런 이슈들로 인해 물론 나역시 많은걸 보고 배우며 생각하게 되긴 했는데,

이과정을 겪으면서 이상적으로 자문하게 되는 부분은

과연 SE 가 해결해 줄 수 있어야 하는 범위는 어디까지 인것일까? 라는 것...

고객은 Oops 커널이나, 커널 디버깅 모드를 설정하거나, 또는 빌드를 새로 하더라도,

커널 내부 메시지들을 로그 찍어 적극적인 해결을 요구하는 상황도 있을 수 있고...
( R 사에서는 커널이 수정되거나 개별 빌드하게 되면 지원이 중단된다 )

RHEL3 의 EOS 가 올 10월로 정해진 마당에, 계속 지원하는 엔지니어로써는 솔직히 환장할 일인 것이다.

인터널에 대해 궁금해 하면 할 수록 이해하고 설명하기가 더 힘들다는 점 역시 어디까지 공부해야하는지...휴~

과연 SE 로써, 커널의 상세 매카니즘들에 완벽하게 알 고 있어야 할 필요가 있을까? 라는 생각이

주를 이뤘던 나였기에 더더욱 자문하게 되는 부분....

Lowmem 영역에 DMA 가 포함되는 그 이유까지 알아야 할 필요가 있을까?

Lowmem pagetable 이 0 일 경우 Highmem pagetable 을 이용한다 정도까지면 되지,

어떻게 얼마나 매핑이 되는지 과연 심각하게 파고 들어야만 하는 것인가??

1G/3G 스플릿에 적용받는 커널은 일반커널과, SMP 이고, 64 비트의 경우 스플릿이 없으며,

Hugemem 커널의 경우 4/4G split 를 알 정도면 되는 것인가?

왜 그렇게 되는건지는 몰라도 되는가??

VM 끼리 연결이 어떻게 되는지는..??

Stack 사이즈와 Threads 의 관계만 알면 되지, 왜 Stack size 가 Threads 와 관계를 갖는 건지

알아야 하지 않는가 ????

내 생각엔 모두 'No' 였다. 알아두면 좋지만 꼭 알아야 할 필요는 없다고 생각했다.

SA ( system architect ) 가 아니라 engineer 이지 않는가? 엔지니어의 최대 목적은,

적절한 효율을 낼 수 있는 것이라고 생각한다.

장애에 대한 대비를 항시 하고, 예측하며, 발생시에는 원인분석에 걸리는 시간을 계산하여,

적절하고 효율적인 대처를 통해 장애 처리를 하여 서비스를 재개시키고, 장애가 재현되지 않도록

하는 것이 SE 라고 생각한다.

고로 장애 발생시에는 가상화이므로, 멀쩡한 VM 에서 클론을 후다닥 떠서 서비스를 재개한뒤 (가상화의 장점!)

원인분석을 위해, 장애가 있던 VM 을 가지고 실제 서비스와 비슷한 상태를 만들어 놓고,

발생되는 정상적인 core dump 를 분석요청 하는 것 정도까지가,

실제 엔지니어레벨에서 충분한 지원범위 였지 않았나 싶은데..또 그것도 정하기가 애매하다는....

가상화 환경이니만큼 시스템 장애시 복구 및 관리 혹은 deploy 가 수월하니,

구글이나 다른 서비스업체들에서 하듯이 동일 시스템을 바로 박아넣어 동작시키면 되는것이라곤 생각되는데..

엔지니어는 서비스가 열심히 돌아가게 해주는게 본분이라면

그럼 SA 까지 바라본다면 어떻게 해야하는거지????

결론은 끝이 없이 나오지 않겠지만........고민되는 부분이다 정말...

리눅스의 커널은 방대하고 심오하다. 커널의 개발자들도 각 매카니즘의 동작 원리를 파악하고,

남에게 설명해 주기에는 더 어렵고도 더 어려운 일인것 같다.

무엇보다 누가 그 깊은 부분들을 다 이해할 수 있을까??

나도 최근 커널공부를 위해 여러가지 준비중인 상태에서도 이해가 잘 안가는 부분들이 많은데....

시스템 엔지니어로써의 가장 필요한 마인드가 무엇인지 생각해 볼 필요가 있었다...

난 어디까지 가야 하는건가?? 어디까지 가려고 하는 건가??


posted by mirr

댓글을 달아 주세요

Skills/System 2010.03.05 01:14
본 글은 스스로에게 어디까지 기술력을 보유해야 한다고 생각하는 건지 자문하는 글로써,
정리되지 않던 글들은 다시 정리하여 공개합니다. 문제가 되는 부분들은 언제든지 얘기해 주십시오.

말 그대로, 시스템 엔지니어로써 갖춰야 할 기술력은 어느정도일까??

2월 3일부터 모 사이트에서 발생한 장애로 인하여, 2월 한달 내내 사람이 살듯 살고있지 못했다. ㅠㅠ

가상화 위에 올라가 있던 RHEL3 (kernel 2.4 smp - 16G) 시스템이 아무런 이유 없이 Hang up 에 빠진것.

우리측의 초기 대처는 일단 전반적인 시스템 메시지 및 로그를 살펴 보는 것..

메시지는 갑자기 파워오프된 서버들에서 흔히 볼 수 있게, 특별한 메시지 없이 뚝 떨어져 있다가,

restart 되는 것들만 있었고, sar 데이타 역시 특별한 이상유무를 찾을 수 없을 정도로

자원 상황은 원할한 상황이였다.
( 특별한 로그가 없이 죽으면 정말 난감할 수 밖에 없다 )

가상화 측 분석 요청도 한 상태였는데, 가상화측에서는 아무런 메시지가 남겨져 있는게 없다는 말...

결국 발칵 뒤집혀 지기 시작했다. OS 측의 문제인 것 아니냐는 식으로 몰려가기 시작한다.

sar 데이타는 디폴트 10분이기 때문에 물론 정확하지 않다는게 맞는 말이긴 하지만,

이 상황에서 장애 원인을 찾기란 힘든 상황이었다.

고객이 설정들을 직접 살펴본 결과, threads-max 커널파라메터가 다른 일반 서버들보다 낮게 설정되어

62327인가 라는 값으로 올려논 상태라고 하였고, 그 후로 모니터링 중이라고 하였다.

이차 분석을 하려고 방문 한 날, 고객측에서 테스트 (장애재현) 를 하게 되었고,

몇가지 간단한 시나리오를 바탕으로 테스트에 들어갔다.

주요 테스트는 단순한 Thread 생성 테스트를 통한 부하 테스트..
( sysrq 로그나 응용프로그램 로그등에 찍힌 fork(): not allocate memory 뭐 이런 로그로 인하여 )

테스트 프로그램을 실행 시키자, 순식간에 서버가 뻗는다.

아하 이거구나! 라고 생각한 전부는 threads-max 의 적절한 값을 정하지 못해서 그런것으로 판단,

R 사 에 문의 하기로 한다. ( 그상황에서 VMware 와 Diskdump 의 지원문제로 netdump 설정 함 )

간단한 R 사 의 답변은 SMP 커널의 경우 메모리가 어느정도이든,

프로세스나 스레드 생성을 위해서는 1G/3G 스플릿 모델에 의해 1G 영역에서 관리할 수 있게 되고,

소스상의 최대 생성가능 수는 32000 개로 정해져 있다는 것.

고로 이 시스템에선 1G / 8 * (8192/4096) = 14336 이라는 것. ( default threads-max 값 )

가상화 이전엔 Hugemem 이였던 시스템이였으나, VMware 의 hugemem 미지원으로 인해

smp 를 사용 하였다는 정보 추가. ( smp = Max 16G Ram ).

뭐, 결국 원점이 되버린건데, 장애의 원인은 결국 못찾았다는것이다.

그래서 다시 테스트를 해 보았고, 테스트 시점에서 netdump 와 sysrq 를 통해 core dump 를 받아

R 사 에 다시 문의 하였다.

R 사 에서 돌아오는 답변은 간략하게, 정확히 행업상태의 덤프가 아니라, 스냅샷식의 덤프라 의미가 없다는것.

분석 내용에서는 메모리가 부족하여 Hang-up 으로 보였을 뿐 Hang-up  은 아니라는 것이였다.

아차.. 그럴 수도 있었겠군... 그러나 몇일 뒤 다시 Hangup!! 게다가 netdump 문제로 not dump...

대략 여러가지 살펴보았고, 또다시 뜬 메모리 부족 및 fork 에러를 기반으로 다시 시나리오를 작성.

문제는 메모리할당이나 스레드 등등 이지 않을까 싶어 R 사 엔지니어 방문요청! 테스트를 해보았다. (와우~)

- 계속 -

posted by mirr

댓글을 달아 주세요

Skills/mY Technutz 2009.12.29 10:28
해외사이트라 영어다.

하지만 강력하고 유용한 도구인 lsof 의 사용법에 대해서 생각해 볼 수 있을만한 팁이다.

http://www.catonmat.net/blog/unix-utilities-lsof/


posted by mirr

댓글을 달아 주세요

X 윈도우 전혀 없이 콘솔로만 가상머신 생성 및 설치하기...

virt-install -n Name -r Mega -f Img --locaiton or --pxe 등등 설치매체 --vnc none \
-x ks=ftp://192.168.122.1/ks.cfg ksdevice=link --noautoconsole --prompt

뭐 이런식으로 kickstart 를 통해 자동설치진행되도록 하면

콘솔 없이도 VM 을 설치 가능하고, virsh 를 이용하여 관리가 가능하다는 내용인데....

사실 해보면 알겠지만 잘 안된다....

일단 virt-insall 로 버쳘도메인을 생성하는 것이 조금 문제가 있는 듯....

여러번 시도해야 된다... 그 이외에는 잘 되지만 일단 좀 짜증난다는거...

아직 Virtualization 관련 라이브러리들은 많이 부족한 리눅스랄까.......

그런데 레드햇 메일링보다 쎈트나 페도라메일링이 훨씬 유용한게 많더라...

다만 너무 많아 안보게 된다는것뿐......
posted by mirr

댓글을 달아 주세요

Skills/System 2009.07.21 18:07
LVM을 사용하다보면 가끔 디스크를 교체하거나 디스크에 fail 이 발생되어

영원히 쓰던 디스크를 제거해야 할 경우가 있다.

이 경우에 그냥 바꿔버리는 경우 ( pvremove 등 안하고 )

계속되는 uuid 를 찾아대는 메시지를 보게 되거나,

lvm 이 꼬여버릴 수 도 있다...

그럴땐 이 문서를 한번 확인 해 주도록 하자

Recovering a Lost LVM Voloume Disk

여기서 중요한건 vgcfgrestore, vgcfgbackup 과 pvcreate --uuid 이다...

사실 오늘 이것덕분에  LVM 문제 하나 해결...

그리고 lvm 은 아마 2버젼 올라오면서 인거 같은데,

/etc/lvm/archive 에 특정 lvm 관련 명령어들이 실행되어 변경이 이루어 질 경우

히스토리별로 설정 백업을 쌓아 논다.

vgcfgrestore -l {VG name} 으로 아카이브 리스트 확인 가능.

이걸 직접 수정해가면서 해결도 가능하다.

/etc/lvm/backup 에는 vgcfgbackup 실행시 쌓이게 된다.

LVM 히스토리또한 남아서 ( archive 되는 이유나 요약이 자동기록된다. )

이상할때 누가 무언갈 했는지 알아내서 족칠 수 있다.

posted by mirr

댓글을 달아 주세요

Skills/mY Technutz 2009.07.19 15:22
Qmail Toaster 를 이용한 Qmail 설치  ( RHEL 4,5 )
posted by mirr

댓글을 달아 주세요

2009.07.18 01:05

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력하세요.