Skills/System 2010. 3. 5. 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/mY Technutz 2009. 12. 29. 10:28
해외사이트라 영어다.

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

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


posted by mirr

댓글을 달아 주세요

Skills/System 2009. 7. 7. 23:02
어딘가 각종 HA 구성을 위한 스크립트 혹은 스크립트 핸들링을 위한 샘플들이

있을거라 생각하고 ( S 모 통신사 DB BMT 중인데 Sybase 등 HA 구성요청이 들어와서 )

뒤적거리던차에 /user/share/cluster 에 있는 것을 확인하였다..

/usr/share/cluster 를 보면 클러스터데몬에서 구동하는 스크립트들이

즐비하게 널려있고, 각 리소스들의 모니터링 주기 및 샘플 스크립트 ( 오라클의 경우 )

들을 확인 할 수 있다.

각 스크립트마다 모니터링주기 및 헬스체크타임이 약간 다르고,

각 리소스들의 헬스체크에 대해서 이해할 수 있는 유용한 공간이다..

예를들어 갑자기 클러스터링이 깨져 복구되지 않았을 경우 막연하게,

네트워크가 문제여서 헬스체크가 쪽났나보다, 시스템이 부하로 인해 안됐나보다

라는 것보다, 체크하는 리소스마다 몇초는 어떻게 모니터링하고,

몇초 후엔 또 어떤행동을 하며, fail 시 어떻게, 얼마나 시간이 처리되는지

원리를 알고 접근하는 것이 왠지 있어보이지 않냐??

뭐 대충 귀찮으면 저렇게 둘러대도 되겠지만 ㅎㅎㅎ

어쨋든 확인 결과 Sybase 는 간단히 RHCS 에서 지원 가능하고 ( 스크립트필없음 )

Oracle 관련 샘플 스크립트, VirtualMachine ( 이거 항목에있지않냐..fedora 에 왜 없냐.. ),

OCF, DNS 등등....... 볼만하다....


posted by mirr

댓글을 달아 주세요

Skills/System 2009. 5. 5. 02:15
아직 계속 정리중이지만 ( case by 부분 )

일단 crash 라는 커널덤프 분석도구의 강력함을 소개하기 위해 포스팅....

실제 문서는 스프링노트에 있다..... 커널 코어덤프 분석... 그 빡씨디 빡씬 세계 흑....

Kernel Crash Dump Analysis


'Skills > System' 카테고리의 다른 글

효율적 데이타베이스관리를 위한 MySQL 세미나..  (0) 2009.06.17
VMware Essential Plus 구축..  (0) 2009.06.17
커널 코어덤프 분석하기...  (0) 2009.05.05
advise path 메시지 로그  (0) 2009.04.22
CentOS 5.3 Released..  (0) 2009.04.01
QLogic HBA 2460 카드 Failover  (0) 2008.11.01
posted by mirr

댓글을 달아 주세요

Life/The Past 2009. 3. 27. 01:52
나름대로 파장을 일으키고 있는 듯한데,

아직은 부족함이 넘쳐난다....

기술적인 글도 쓰면서, 같이 연결되어 이 정감넘치지만 삭막한 IT 사람들에게

혼을 일깨우는건 거창하고, 뭐 그냥 단순히 온풍기역할정도 라도 하길 바라는 상황인데,

아직은 둘을 결부시키기가 좀 힘들다...

그래서 공부하고있는 스토리 텔링 분야에 집중중이긴 하지만....(- 사족)

확실히 그렇다...IT 는 너무 세분화되어있다...

세분화라는건 정말 매우 좋고 훌륭한 시작이지만,

언젠가는 버려야 하는 습관이라 생각한다.

무협지들 많이들 봤을거다.. 특히 IT 인이라면 말이다 ^^

거기보면 나오는 내용들이 실업무중에도 많이 쓰인다..

내공, 외공, 그리고 만류귀종...사실 은근히 이런것들은 불가의 가르침들과도

많이 상통한다...물론 불교뿐만이아니라 따지고 본다면 모든 종교와 상통한다..

어쨋든 내가 얘기하고자하는건, 극의에 이르면 모두가 통하며,

극의에 이르는 길은 모든걸 잊을때라는 것이다..

이말인 즉슨, 경계라는것은 경계를 알기위해 새우는 것이며,

경계 및 개념을 안 이후에는 그 경계를 허물어 모든 사물에서 그 진리를 끌어내며,

찾고, 적용하며 삶 자체가 진리에 가까워 져야 한다는 의미일 것이다...

뭐...바쁜일상 이후의 샘물처럼 공급받은 휴식이라는 내일의 스케쥴이 잡혀있는 상태라

마음이 가벼워 여러가지 생각하고 찾아보고 읽으면서 급하게 쓴 글이라,

아마 다시 다듬어 져야 하겠지만, 궁극적으로 전하고자 하는 의미는 바로 이거다..

우리나라는 IT를 너무 세분화 했다. 그래서 더더욱 발전했다.

그러나 이젠 그 발전에 한계가 보이기 시작했다.

이 이유로 적어도 나는 너무 큰 세분화에 대한 습관이라고 새각하며,

이젠 이 것들을 전부 잊어야 할 때란 것이다.

어플디벨롭출신의 PM이든, 네트웍출신 PM이든, OS 출신 아키텍쳐PM 이든,

하드웨어기반 PM이든, 모두 궁극적인 (적어도 한국에선) 목표를 하고 있던

PM 에 위치한 만큼!!!

그냥 하던대로 하다보니 나이먹어 PM 해요 라는 식의 마인드는

버려야 하지 않을까 싶다....

이 세분화 되어버린 한국 IT 를 이젠 모두 하나의 예술로 합쳐야 할 때인 것이다...

난 나의 이 말도 안되는 나만의 주의를 아티 라고 정하고 싶다...

뭐 조악스럽고, 잡스럽지만 대략 "아티스틱테크니컬리즘" 이라고 부르고 싶다.....

그래...나 영어 딸리고 울렁거려 저 말자체도 맞는건지 모르겠다 ^^

그래서 내가 알고 있는 모든이들을 시점으로 조금씩 조금씩 나아가려고 하는 것이다...

'Life > The Past' 카테고리의 다른 글

VMWare 첫 컨설팅인가...  (2) 2009.04.07
북한 인공위성 발사실험...  (0) 2009.04.05
간만에 쓴 글들이...  (1) 2009.03.27
정의로움을 지킨다는 것은..  (1) 2009.03.23
국민성의 썩어빠짐..WBC  (0) 2009.03.13
아련하지만 멋진 글(기사) 한편...  (1) 2009.02.04
posted by mirr

댓글을 달아 주세요

  1.  Addr  Edit/Del  Reply Favicon of http://truefeel.tistory.com/ BlogIcon 좋은진호

    스토리텔링 열심히 하시는 줄 알았는데, 도닦고 오신 것 같은데요. ㅋㅋ

    2009.03.28 01:23

Skills/mY Technutz 2008. 10. 14. 19:47
뭐..간단하다 이미 페도라 라이브씨디라는 프로젝트가 있기때문에,

Cent 에서는 그냥 그걸 가져다 쓰는것밖에 없는듯하다...

물론 뭐 적당히 Cent 패키징 시스템에 맞게 고친것들이 많긴하지만..

역시 응용하면 레드햇계열이라면 어떤 형태로든 제작 가능할듯..

주의사항 : 아주 커스텀하게 제작하려면 복잡하고 은근 신경쓰이는게 쫌 있다.. 간단히가자..
               특히 주의할 사항은 LVM 환경에서는 왠만하면 제작하지 말라는거다.
               VMWARE나 VirtualBox, 멀티부팅 등등으로 LVM 사용 않는 OS등의 
               환경을 만들어서 제작하는게 정신건강에 이롭다...

일단 쭉 따라해 보도록 하자.



PS: 참고사이트 CentOS LiveCD Project
                      Fedora LiveCD Project
                      오래전 야꿀옹의 폭파된 블로그.. ㅜ.,ㅡ 링크는 새블로그로...

'Skills > mY Technutz' 카테고리의 다른 글

User의 명령들을 남겨보자...  (1) 2008.11.22
USB에 LiveCD 올리기  (0) 2008.10.14
CentOS LiveCD 만들기..  (0) 2008.10.14
부팅가능 USB 스틱 만들기...  (0) 2008.09.16
Failover Bonding  (0) 2008.09.12
윈도우서버에서 SNMP값이 정확히 안들어올때..  (0) 2008.06.09
posted by mirr

댓글을 달아 주세요

Skills/mY Technutz 2008. 9. 12. 00:09
Failover 채널 본딩...

본딩을 아주아주 예전 하드웨어 및 네트워크 상황이

구리디 구리던 시기에 대역폭 향상을 위해 본딩하는것만 했었는데,

요즘엔 HA 서비스를 위해 ( 고 가용성, Failover ) 본딩을 해서 서비스한다..

예전회사들에 있었을땐 미쳐 생각하지 못했던 것들인데....ㅋㅋㅋ

root@ ~] vi /etc/sysconfig/network-scripts/ifcfg-bond0
  DEVICE=bond0
  ONBOOT=yes
  blahblahblah.... ( 일반적인 기존 eth0 설정과 동일하게 함. )

root@ ~] vi /etc/sysconfig/network-scripts/ifcfg-eth0
  DEVICE=eth0
  USERCTL=no
  ONBOOT=yes
  MASTER=bond0
  SLAVE=yes
  BOOTPROTO=none

root@ ~] vi /etc/sysconfig/network-scripts/ifcfg-eth1
  DEVICE=eth1
  USERCTL=no
  ONBOOT=yes
  MASTER=bond0
  SLAVE=yes
  BOOTPROTO=none

root@ ~] vi /etc/sysconfig/network
  GATEDEV=bond0

root@ ~] vi /etc/modprobe.conf    ( bonding 모듈 추가 )
  alias bond0 bonding
  options bonding mode=1 primary=eth0 (Active-Standby Mode)
  options bonding miimon=100  ( Interval Time..대략 100정도로 권고.. )
  ( NIC 에서 Link detected 가 지원되야함. ethtool eth0 | grep Link 로 확인. )

root@ ~] modprobe bonding     ( 모듈 적재 )

root@ ~] lsmod | grep bonding   ( 모듈 적재 확인 )
  bonding              47829    0

root@ ~] service network restart

root@ ~] ifconfig    ( bonding 장치 올라오는거 확인 : bond0 )

root@ ~] cat /proc/net/bonding/bond0   ( bonding 설정 내용 확인. )

본딩 옵션들

Mode : 본딩방식을 정하는 옵션.
       0 - RR 방식 로드밸런스. 말 그대로 인터페이스의 라운드로빈.
       1 - Active-Standby ( NIC 의 Failover 를 위한 모드 )
            한개는 대기상태로 기존것이 이상이 생길경우 엑티브.
       2 - XOR 방식. 수신시에는 MAC 어드레스로 맵핑, 송신시 1번 NIC 사용.
       3 - Broadcast 방식 로드벨런스. 모든 Slave NIC 으로 통신.

Miimon : 링크 감시설정 모드. 밀리세컨드단위. 디폴트값 0으로 사용안함이 된다.
         즉 빨리복구한답시고 0으로 설정하면 Failover 가 되지 않는다!!!!

downdelay : 끊어진 인터페이스의 사용불가 까지의 시간을 정해준다.
             Miimon값으 배수로 지정해야하며 디폴트는 0 이다.

updelay : 위에꺼 보면 대충 감 오잖아??? 앙?

arp_interval : arp 모닝터링 주기 설정. 밀리세컨드. mode 0 or 2 의 경우 사용시,
               스위치 설정 필요.

arp_ip_target : 위에꺼 사용시 사용가능. Arp Request 에 대한 IP 주소 지정 가능.
                  16개까지 지정가능. 콤마로 구분.

Primary : 대략 이름대로 본딩된 채널 내에서 주가 될 NIC 설정.
          랜카드 성능이 좀 다를경우, 좀 구린걸 slave로 해서 백업용으로 지정가능.
          ( 멀티 본딩 구성시에는 적용

Multicast : 본딩채널을 두개 이상 사용시 이용.
           0 - 사용 안함.
           1 - 활성화된 슬레이브끼리 멀티캐스팅
           2 - 모든 슬레이브 본딩에 멀티캐스트. ( 디폴트 )

Failover 의 작동상황 여부는 대략 /proc/sys/net/bonding/bond0 등의 파일을 읽었을때,

Failure count 던가...암튼 카운트하는 항목의 변화로 알 수 있다...ethtool에서 나오나??

암튼 대략 이정도... 커널이나 OS 버젼에 따라 몇가지 옵션이 더 있고, 없고 하지만,

일단 기본적인 부분을 기술했다. 잘못됐거나 빠진 부분 있다면 질타 바람....

사실 아직 직접 구성해 보진 않았고, 대략 말만 듣고 테스트겸, 확인겸 정리.

- 송재완이의 참조를 거부합니다 -


'Skills > mY Technutz' 카테고리의 다른 글

CentOS LiveCD 만들기..  (0) 2008.10.14
부팅가능 USB 스틱 만들기...  (0) 2008.09.16
Failover Bonding  (0) 2008.09.12
윈도우서버에서 SNMP값이 정확히 안들어올때..  (0) 2008.06.09
Strace  (0) 2008.05.28
SNMP MIB값을 쉽게 찾자.. Getif  (0) 2008.04.23
posted by mirr

댓글을 달아 주세요

Skills/System 2008. 7. 14. 01:23
미완성글이지만 일단 잊기전에 정리할 차원으로 끄적여야 겠다...

우리 팀장님은 서비스적 시스템관리자 성향이 있으신다...

서버란것은 서비스에 맞추어서 산정되야 하며 서비스가 유지되기 위한 시스템이란 것이다...

그동안 서버성능에 대해서 주먹구구식으로만, 서비스보단 나의 편리함을 위주로

서버를 산정,튜닝했던 나로써는 나로하여금 다시 새로운 물을 공급해주는 샘물이였다..

실제로 예전에 다니던 회사는 작지만 많은 회원을 보유하고있던 포털이였기때문에,

웹서버에 대한 성능기준이 중요했다....하지만 문제는 수치라는게 막연하다했딴거다..

막 사장님이나 서비스기획자들은 대략 동시접속 만명, 이만명 정도를 불러댄다..

그러면서 서버를 어떻게 구매 해야겠냐고 묻는다...

실례로 이전회사에서 웹으로만 구성된 ( AJAX ) 채팅사이트를 구축하는데,

참 애매하게 잘되면 몇만, 일단은 몇백 을 계산으로 산정해서 서버를 구축해 달라고 한다..

니미럴...이런말 들으면 경력있는사람이라면 욕부터 나와야 할것이다...아닌가 캭..

그래서 퉁명스레 서버사양을 최대한 높여서 불르곤 했었다...

역시나 가격이 또한 문제...그래서 적당히 저렴하고 성능 튼튼한 편인

델 2950 ( 쿼드코어 제온 5080 * 2CPU, 4GRam, SAS 1500k ) 로 테스트배드를 선정했었다.

자세한 서버 셋팅에대해선 말하진 않는다 여기선 서비스 성능을 산정하기위한

접근방법에 대한 얘기만 할것이다.



어쨋든 대강 이렇게 까지 또 디스크에 대한걸 마무리하고 쉬겠다.....넘 긴가?

어차피 차차로 정리해 나갈것이며, 대략 지금생각으론 삼부작정도로 대략적인

뼈대를 잡아 기술하고, 필요하다면 중간중간 다듬으며 세분화 할 것이다.





posted by mirr

댓글을 달아 주세요