2012년 8월 9일 목요일

To be lazy sysadmin.

Lazy라는 말은 좀 부정적인 의미를 가지고 있다.
실제로 일하지 않고 놀고 다른 사람의 결과물에 다리를 걸치고, 자신은 일을 하지 않는...

하지만 IT에서 그루에게 사용을 하는 말 중에 하나이다. 실제로 Perl을 만든 래디도 자신이 Lazy하다고 말했고 반복적인 작업을 하기 싫어서 Perl을 만들었다고 이야기를 했다.
이런 Lazy sysadmin을 하기 위해서 다음과 같은 것이 필요하다.

1. Who is boss?
- 기계가 나를 위해서 존재한다는 생각을 가지자
2. Write scripts for repeated jobs.
3. Backup everything.
4. Create a DR plan.
5. Configure highly redundant systems
6. Head room for unexpected growth
7. Be proactive
8. Loves Keyboard shortcut.
9.Command line master
10. Learn from mistakes
11. Learn new technology
12. Document everything

이 12가지만 준비 한다면 나도 Lazy한 System admin이 될 수 있지 않을까?

좋은 자료를 만들어 주는 Geek stuff에 감사한다.
(출처 : http://www.thegeekstuff.com/2011/07/lazy-sysadmin/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed:+TheGeekStuff+(The+Geek+Stuff) )

2012년 8월 8일 수요일

굿모닝 팝스를 들으면서 기분 좋게 들은 노래

The game of love

기분이 다운 되었을때 한번 들어보자구요.!!!


요즘 CNN에도 인기있는 가요 하나


2012년 8월 7일 화요일

삶을 180도 바꾸는 구글의 마법-13

이번 장의 제목은 "살며 사랑하면 일하며"이다. 정말 요즘 이런 저런 일들로 힘든 나에게 도움을 줄수 있는 글이기를 바라면서 읽기 시작을 했다.

'일과 삶의 균형' : 삶을 좀 더 체계적으로 정리해 더 큰 성취감을 느끼고자 하는 사람들의 궁금적인 목적
--> 사실 이 목적은 하나의 신기루... : 요즘 나도 실감하는 부분이다.
--> 일을 적게하는 삶을 바라는 것이다. : 불가능...

따라서 스트레스와 억울함을 줄임과 동시에 생산성을 높이고, 삶의 기쁨을 맛보며 도전하는 데 합당한 동기를 부여하는 방법으로 삶과 일을 통합하는 것..

21. '일과 삶의 균형'을 맞추는 대신 삶과 일을 통합하라.

이렇게 할려면 지금까지의 일, 삶에 대한 의미를 다르게 생각을 해야한다.
먼저 일과 삶을 굳이 구분지으려 해서는 않된다.
8시간의 근무 시간 중에 잠시 일이 소강상태가 생기면 뇌의 휴식을 위한 장소를 찾아보는 것이 어떻까? 사실 우리는 8시간이라고 업무시간이 정해져 있지만 실제로는 그 이상의 시간을 회사에서 보내게 된다. 이번 주의 나의 일과는 아침 6시 30분에 회사 도착을 해서 저녁 6시까지 있는 거의 11시간 정도를 회사에서 보내고 있다. 이런 시간 속에서 자신만의 휴식시간을 가질 수 있다면 얼마나 많은 도움이 될까? 즉 그 상황에 따라서 업무를 진행하는 요령이 생겨야 한다.
그리고 주말은 일반적으로 나도 일하기 싫어하고 남에게 일을 시키는 것도 싫어한다. 하지만  그 일의 중요도가 높다면 어떻게 할까? 그냥 미룬다면 월요일에 업무 강도는 더 심할 것이고 만약 외국과의 업무를 한다면 더더욱 시간의 차이에 의해서 주말에 일하는 것이 엄청남 Advantage가 될 수 있다. 즉 현명하게 일하기가 필요하다. 그리고 주말에는 휴식을 취애햐 한다. 이 진정한 휴식을 하기 위해서는 책상과 컴퓨터에서 멀리 떨어져 뇌에 휴식을 줄 수 있는 무엇가를 해야한다. 그러면 휴가에서는 가능하면 한번 정도 확인을 하는 것으로 하면서 즐기는 것이 어떻까?
이렇게 일,삶의 통합을 위해서는 정해진 시간에 집중해서 그 업무를 완수하면서 다른 시간에 자신이 할 수 있는 기회를 가질 수 있다.

2012년 8월 3일 금요일

I/O Scheduler in Linux

OS에서는 Process, I/O Resource 에 대한 관리를 위해서 스케줄러를 사용한다.

그 중에서 I/O Scheduler는 컴퓨터 성능에서 가장 느린 Disk에 대한 관리를 해주는 놈이다.
이 커널의 하위 시스템은 디스크의 탐색 시간을 최소화 시켜서 성능 향상을 목적이다. 실제로 하는 일은 Merge와 Sort이다. Merge는 여러 번의 요청을 한번의 요청으로 만드는 것이다. 이 방법은 여러번 발생하게 되는 탐색시간을 줄여주어서 성능을 향상시킨다. 그리고 Sort는 헤드의 운동 방향에 맞게 요청을 정렬하는 것이다.
2.4 버전에서는 Linux Elevator를 기본으로 하였다. 이것은 가까운 곳의 요청을 통합해서 한방향으로 이동을 하는 구성인데, 문제는 일부에서만 I/O가 과부하로 발생을 하게되면 그 외의 부분은 기아상태가 될 수 있는 원인이 된다.
이래서 2.6 에서는 4가의 I/O 스케줄러가 생겨나게 되었다.
1. Deadline I/O Scheduler (driver/block/deadline-iosched.c)
  - Write : async I/O
  - Read : sync I/O
--> Read가 느릴 경우에는 전체적인 성능이 떨어지게 된다. 따라서 Deadline은 각 요청에 대한 만료시간을 두는 방식으로 이런 문제를 해결을 하였다.
즉 Sorted Queue, Read Queue,  Write Queue를 두고 각각에 대한 요청만료시간을 두고 그에 따라서 작업을 처리하는 방식이다.

2. Anticipation I/O Scheduler (driver/block/as-iosched.c)
Deadline과 유사하게 3개의 Queue를 사용하지만 Anticipation Heuristic을 추가한 것이다. 다른 점이다.읽기 요청을 처리하기 위해 즉시 탐색 방향을 변경하고 다시 다른 요청을 처리하지 않는다. 그 대신에 몇 밀리초동안 현재 사용중인 디스트 부분에 인접한 요청을 기다리다가 만약에 있으면 바로 처리를 하고 그렇지 않으면 일정 시간 후에 다른 작업을 하는 구조이다. 일반적으러 서버를 위한 좋은 방법이다. 단 검색만 있는 DB는 성능이 상당히 떨어진다.

3. Complete Fair Queuing I/O Scheduler(driver/block/cfq-iosched.c)
I/O를 요청하는 프로세스 마다 Queue를 생성하고 그것들은 Roundrobin으로 서비스를 하는 방식이다. 일반적으로 2.6에서 기본으로 사용함.

4. Noop(No operation) I/O Scheduler(driver/block/noop-iosched.c)
Random Access 가 가능한 SSD에 사용할 수 있는 방식으로 오직 Merge만 하여서 스케줄링을 한다.

I/O scheduler의 선택은 다음과 같이 한다.
#cat [as,cfq,deadline,noop] > /sys/block//queue/scheduler

확인은
# cat /sys/block//queue/scheduler
noop anticipatory deadline [cfq]


2012년 8월 1일 수요일

삶을 180도 바꾸는 구글의 마법 - 12 장

몰입, 몰입, 몰입

얼마전에 "미쳐야 산다"라는 책이 나와서 바로 구매를 하고 읽어 보았다. 항상 아버지가 말씀하셨던 말이라. 좀 지겹게 느껴졌지만, 정말 그 말이 맞는 것 같다. 모든 것이던 미쳐야지만 99.9%의 단계에서 0.1%를 더해져서 소위 말하는 구루, 전문가가 되는 것 같다.

그래서 이런 생각을 책을 넘겼다.

여기에서는 일과 삶을 통합하는 방법에 대해서 이야기를 한다. 일을 하면서 우리는 자신의 의도와는 다르게 외부 환경에 의해서 일에 대한 전환 즉 "Context Switch"가 자주 발생을 하게 된다. 컴퓨터에서 CS에 의해서 많은 자원이 소비가 되기 때문이다. 이런 CS는 삶에서 스트레스를 유발할 수 있는 것이다. 그리고 이런 CS에 의해서 우리는 가장 중요한 데이터 처리 를 하는 뇌의 피로도를 증가 시킬 것이다.

따라서 이런 상황 전환을 위한 전략이 필요하다. 바로 그것이 19번째 원리이다.

19. 나중에 상황 전환할 때 도움이 되도록 메모하라.

가능한 한 유사한 상황의 일이나 회의 등의 업무가 이어지는 방향으로 하루를 구성하는 방법도 좋은 생각이다. 단순히 뇌의 똑같은 부분을 활용을 하는 것 즉 지역성을 생각한 Cache를 사용하는 것처럼이다. 현실 세계에서는 힘든 부분이지만 시도를 해볼만 하다. 바로 이것이 20번째 원리이다.

20. 유사한 업무는 묶어서 처리하자.

만약에 내가 집중을 하지 못하는 산만한 사람이라면 어떤 이유든 그 내용을 정리해봐야 한다고 책에서는 이야기를 한다. 몸이 피곤하거나 극도의 스트레스에서는 거의 대부분 멍항 상태가 된다. 어떻게 보면 이것은 악순한의 모습이 아닌가 생각이 든다.
그리고 메일이 오게되면 무의식적으로 클릭을 하고 답변을 하게 된다. 이런 것들도 바로 오늘 당장 수동으로 전환을 해야겠다. 그리고 트위터, 문자메세지도 잠시간의 휴식을 위한 창구로 사용을 해야지 계속 정보를 받기 위해서 신경을 쓴다면 이것또한 상황 전환 발생시 스트레스와 효율을 떨어지게하는 원인이 되지 않을까?

I/O Virtualization-Xsigo가 Oracle로

이전 회사에서  I/O virtualization 에 대한 일을 했었다.
Infiniband기반의 Xsigo...
이 솔루션을 가지고 VMware, Xen을 연동해서 hypervisor가 I/O부분의 가상화를 전담하는 것이 아니라, Xsigo의 Infiniband기반의 HCA와 스위치를 이용해서 QoS와 SAN, Ethernet을 동시에 지원하는 구조를 이용해서 기존의 10Gbps Ethernet과 SAN을 동시에 지원을 할 수 있는 구조이다. 지금은 Infiniband가 40G가 가능하기 때문에 더더욱 좋은 솔루션인 것 같다.
그리고 VMware의 VIC와 연동을 하여 손쉽게 관리를 할 수 있는 특징도 있다.
이전에 이와 관련해서 몇번의 세미나 참석과 Big 5 Company에 대한 설명 및 PoC도 진행을 하였다.
하지만 역시 한국에서는 기존의 Ethernet, SAN으로 분리되는 것을 좋아하고... 뭐 다른 이유는 알겠지만, 나의 능력 부족으로 소개정도에서만 끝난 솔루션이라서 많이 아쉽다.