시스템이야기2013. 5. 20. 18:56

로컬에서 root ID를 얻을 수 있는 커널 취약점이 발견되었다. 해당 커널 버전은 2.6.37~3.8.9 이다.
그러나 CentOS 6.x(또는 RHEL)의 커널 2.6.32버전은 2.6.27에서 백포팅된 것이 있는데 해당 취약점까지 백포팅된 것으로 알려졌다.



CentOS 6.x버전을 사용중이면 커널 업데이트(지난주에 커널패치가 나옴)를 반드시 해야한다.

* CentOS 6.x에서 취약점없는 버전 : 2.6.32-358.6.2.el6.x86_64 <-- 패치 번호 -358.6.2가 문제 없음.

* Linux PERF_EVENTS Local Root

http://packetstormsecurity.com/files/121616/semtex.c
http://downloads.securityfocus.com/vulnerabilities/exploits/59846.c

커널 취약점 테스트 결과다. gcc 컴파일할 때 반드시 -O2 optimize 옵션을 넣고 테스트해야 한다.

[ 커널 패치 전 ]

$ gcc semtex.c
$ ./a.out
2.6.37-3.x x86_64
sd _at_ fucksheep.org 2010
a.out: semtex.c:81: main: Assertion `p = memmem(code, 1024, &needle, 8 )' failed.
중지됨
$ gcc -O2 semtex.c  <-- -O2 옵션 넣고 컴파일
$ ./a.out
2.6.37-3.x x86_64
sd _at_ fucksheep.org 2010
-sh-4.1# id
uid=0(root) gid=0(root) groups=0(root),501(true)  <-- root권한 획득
-sh-4.1# exit
logout


[ 커널 패치 후 ( yum update kernel* 명령 후 ) ]

$ uname -r
2.6.32-358.6.2.el6.x86_64
$ ./a.out
a.out: a.c:51: sheep: Assertion `!close(fd)' failed.
중지됨
$

※ expolit 소스를 링크하고 싶지 않았다. 하지만 이미 공개가 많이 되었고, SE가 직접 취약성을 테스트하도록 링크를 걸었다.

Posted by 좋은진호
시스템이야기2013. 2. 5. 12:50



Dell R620, R720 장비(Dell Rx20시리즈)가 작년 6월 정도에 출시되었다. 그런데 이 최신 장비에 작년말까지 FreeBSD를 사용할 수가 없었다. 크게 2가지 문제가 있었다.

  • RAID카드(MegaRAID) 인식 문제
  • NIC 인식 문제 (Broadcom의 BCM5720C 칩셋)

당시에 RAID카드 인식이 안되어서 설치 자체를 할 수가 없었다. 7월쯤에 SVN으로 RAID카드 관련 최신 커널 소스를 받아 패치하면 인식되어 설치는 문제없었다. 그러나 NIC인식은 여전히 문제였다.

bge0: watchdog timeout -- resetting
bge0: link state changed to DOWN
bge0: link state changed to UP

작년 11월말에 해당문제를 해결한 bge 커널 소스가 올라왔다. (국내 yongari님이 commit한 소스임)

http://svnweb.freebsd.org/base/stable/9/sys/dev/bge/if_bge.c?view=log

  With this change, bge(4) should work on any 5717/5718/5719/5720
  controllers. Special thanks to Mike Hibler at Emulab who setup
  remote debugging on Dell R820. Without his help I couldn't be able
  to address several issues happened on Dell Rx20 systems. And many
  thanks to Broadcom for continuing to support FreeBSD!

  Submitted by:    davidch (initial version)
  H/W donated by:    Broadcom
  Tested by:    many
  Tested on:    Del R820/R720/R620/R420/R320 and HP Proliant DL 360 G8


이 bge 소스는 12월 릴리즈된 FreeBSD 9.1에 포함되지 않았다. NIC인식을 위해서 별도의 수고가 필요하다.
http://svnweb.freebsd.org/base/stable/9/sys/dev/bge/ 에서 if_bge.c과 if_bgereg.h 를
http://svnweb.freebsd.org/base/stable/9/sys/dev/pci/ 에서 pcireg.h 를 받아서
각각 /usr/src/sys/dev/bge/ 와 /usr/src/sys/dev/pci/ 에 복사한다.
그리고 커널 컴파일(/usr/src/에서 make -j8 kernel)하고 리부팅하면 NIC 인식에 문제가 없다.
FreeBSD 8.x 또한 SVN에 해결된 소스가 있으니 최신 SVN 소스를 받은 후 컴파일하면 인식될 것이다. (해보지는 않음)


FreeBSD 9.1 최신 SVN버전의 CD 만드는 방법은 '나만의 FreeBSD ISO 이미지 만들기'에 자세히 적어뒀다.

Posted by 좋은진호
IT이야기2012. 10. 8. 08:50

신용카드 크기만한 라즈베리 파이(Raspberry Pi)에 xbmc( http://www.raspbmc.com/download/ )를 설치한다.
설치 시간은 20~30분 정도 소요가 된다. xbmc 설치 후에 기본적으로 '시스템' -> '설정'에서 언어, 시간대 등을 변경해야 한다.

라즈베리 파이(Raspberry Pi)[ 라즈베리 파이. 인터넷은 유선 대신에 USB 무선랜카드로 연결했다. ]


라즈베리 파이를 리눅스 장난감(?)과 영화감상용 PC용으로 사용하기 위해서 구매했다.

  • 리눅스 장난감으로 쓸 때는 데비안 기반의 Raspbian + 모니터 구성으로 사용하고,
  • 영화감상으로는 xbmc + 프로젝터로 사용한다.


1. 라즈베리 파이 xbmc에서 설정하기

시스템 -> 설정 -> 서비스 -> 웹서버를 선택한다. 포트는 기본포트 대신에 8888으로 변경을 했다. ID와 비밀번호를 설정한다.
IP로 원격제어하므로 라즈베리 파이가 같은 네트웍이 아니어도 상관없다.

xbmc[ xbmc의 웹서버 설정 화면 ]



2. 스마트폰에서 설정하기

스마트폰에는 xmbc remote 어플을 설치한 후 Manage XBMC Hosts에 접속할 라즈베리 파이 xbmc서버를 추가한다.

xmbc remote[ xmbc remote어플에서 접속할 xmbc 서버를 추가하는 화면 ]



라즈베리 파이의 IP를 모를 경우에 라즈베리 파이 xbmc의 '시스템' -> '시스템 정보'에서 확인할 수 있다.
라즈베리 파이 xbmc에서 IP를 DHCP로 할당받는다면 부팅할 때 IP가 바뀔 수도 있다. IP가 바뀔 때마다 스마트폰에서 접속할 IP를 설정한다면 불편할 것이다. 공유기에서 '라즈베리 파이의 MAC주소'에 대해서는 '고정 IP'를 할당받도록 설정하는게 좋다.


xbmc remote[ 추가한 xbmc 서버 목록 ]


접속하면 다음과 같은 화면을 볼 수 있다. Remote Control를 터치한다.


xbmc remote[ xbmc에 연결된 어플 화면 ]


리모콘 버튼은 세부분으로 나누는데 크게 불편함이 없다.

1. 비디오, 음악, 사진, TV 등 바로 실행 버튼
2. play/stop 등의 재생 관련 버튼
3. 상하좌우 이동, 선택 버튼


xbmc remote[ xbmc remote 리모콘 ]


xbmc remote어플에서 'Now Playing'를 선택하면 다음과 화면을 볼 수 있다.


xbmc remote[ xbmc remote어플의 Now Playing ]


다음은 라즈베리파이 xbmc + 유선 USB 랜카드 + 프로젝터 + 스마트폰 xbmc remote 어플 조합으로 조작하는 xbmc화면이다.



xbmc[ 프로젝터로 본 xbmc 화면 ]


xbmc[ xbmc 영화 화면 ]


xbmc[ xbmc 음악 감상 ]





라즈베리 파이와 xbmc remote어플로 즐거운 영화감상하세요.

Posted by 좋은진호
시스템이야기2012. 9. 12. 18:38

SAN 스위치는 설치 후에 버전상의 문제가 없다면 펌웨어를 업그레이드 할 일이 거의 없다.
저는 SAN 스위치(SAN Switch)를 운영하지만 스토리지 전문 엔지니어가 아니다. SAN에서 CLI명령을 조금 사용하는 정도다. 이번에 펌웨어 업그레이드할 기회가 생겼고, 직접 해보고 싶어서 전문 엔지니어에 맡기지 않고 해봤다.



참고로 Brocade SAN 스위치의 Febric OS는 리눅스 기반으로 만들어졌다. OS적 관점에서 몇가지 특징을 이야기 하면 다음과 같다.

  • 패키지는 rpm으로 되어 있다.
  • CLI접속시 restricted bash(rbash)가 동작한다.
  • CLI용 명령은 쉘스크립트로 이뤄진 것이 많다. (memshow, version, ... 등)
  • CLI는 admin ID로 접속하지만 리눅스 기반이니 root ID도 있을 것이다. 하지만 ssh접속은 admin만 가능하게 제한되어 있을 것이다. (추측)


1. 현재 SAN 스위치 정보 확인하기

version, firmwareshow 등으로 버전 정보를 미리 확인한다.

SAN2:admin> firmwareshow
Appl     Primary/Secondary Versions
------------------------------------------
FOS      v6.4.2a                       <-- Primary   버전
         v6.4.2a                       <-- Secondary 버전
SAN2:admin>

SAN2:admin> version
Kernel:     2.6.14.2                   <-- 기반 OS인 리눅스 커널 버전
Fabric OS:  v6.4.2a                    <-- OS버전
Made on:    Mon Jul 18 22:27:42 2011
Flash:      Tue Feb 21 18:35:31 2012
BootProm:   1.0.9
SAN2:admin>



2. FTP 설정

펌웨어 v6.4.2a -> v6.4.2b로 업그레이드 한다고 가정하자. 펌웨어 파일 v6.4.2b.zip을 FTP서버에 풀어놓는다.


FTP 서버 종류는 다양하므로 FTP서버 셋팅은 따로 설명하지는 않겠다.
저는 /data/brocade/v6.4.2b/ 디렉토리에 펌웨어가 있고, /data/brocade/ 를 FTP의 root 디렉토리로 지정했다.


3. SAN 스위치 펌웨어 업그레이드 (CLI 환경)

firmwaredownload 명령 하나로 쉽게 업그레이드할 수 있다.


SAN2:admin> firmwaredownload -s
Server Name or IP Address: 10.10.10.10       (FTP 서버의 IP를 지정)
User Name: ftpuser
File Name: /v6.4.2b/release.plist            (FTP의 release.plist 파일 경로를 지정한다. 경로 지정 주의. 아래에 별도 설명)
Network Protocol(1-auto-select, 2-FTP, 3-SCP) [1]: 2
Password:
Do Auto-Commit after Reboot [Y]: y           (리부팅 후 auto commit 여부)
Reboot system after download [N]: y          (download후 자동으로 rebooting 여부)
Server IP: 10.10.10.10, Protocol IPv4
Checking system settings for firmwaredownload...
System settings check passed.

You are running firmwaredownload with auto-reboot and auto-commit enabled. After the firmware is downloaded the system will reboot and commit firmware automatically.


Do you want to continue (Y/N) [Y]: y
Firmware is being downloaded to the switch. This step may take up to 30 minutes.
Preparing for firmwaredownload...
Start to install packages...
dir                         ##################################################
ldconfig                    ##################################################
... 생략 ...
awk                         ##################################################
ipsec                       ##################################################
Removing unneeded files, please wait ...
Finished removing unneeded files.

All packages have been downloaded successfully.
Firmware has been downloaded to the secondary partition of the switch.
HA Rebooting ...


위에서 'File Name: '에 release.plist 경로를 지정할 때 주의가 필요하다.
release.plist 파일은 /v6.4.2b/ 아래에 스위치 타입 디렉토리(SWBD??/)마다 존재한다. 업그레이드시에 타입은 자동으로 파악된다. 따라서 /v6.4.2b/SWBD83/release.plist 로 지정하지 않고 /v6.4.2b/release.plist 처럼 지정해야 한다.


리부팅 후에 version, firmwareshow 등으로 버전 정보를 다시 확인한다.
펌웨어 업데이트시에 auto commit을 선택하지 않았을 경우에 리부팅 후 firmwarecommit 을 한번 해주면 commit이 된다.

GUI화면에서 업그레이드 방법 등 자세한 것은 '커피닉스에 올려둔 글'을 확인하기 바란다.

Posted by 좋은진호
시스템이야기2012. 6. 26. 19:20

전직 페이스북(facebook) 개발자 Eric Frenkiel과 Nikita Shamgunov가 만든 MemSQL.



MemSQLMemSQL


1. 특징을 간단히 살펴보자.

1) 개발자가 주장하기는  MemSQL 개발자에 따른 disk기반 DB보다 30배까지 빠르다고 한다.
   MemSQL은 초당 8만쿼리를 처리했고 MySQL은 초당 3천500쿼리를 처리해서 MySQL보다는 23배 빠르다고.

2) MemSQL은 메모리에 데이터를 유지하고 있어서 빠른 성능을 달성했다.

페이스북이 PHP코드를 C로 변환하여 성능을 향상시켰는데, 이 때 PHP -> C++로 변환한 툴이 'HipHop'이다. 이 HipHop툴처럼 MemSQL은 SQL을 C++로 변환하여
성능을 급격히 높였다. 개발자인 Frenkiel은 이렇게 말했다. "This is like HipHop for SQL"

3) MemSQL은 MySQL API와 인터페이스를 사용한다.

그래서 관리적 이슈도 없고, 어떤것도 새로 배울 것이 없다.

4) 하지만, 아직 지원 안되는게 있다. 그래도 나온지 얼마안된 DB가 위의 말대로의 성능만 내준다면, 앞으로 엄청난 물건이 될게 분명하다.

* UNSUPPORTED FEATURES


- Views
- Prepared Queries
- Stored procedures
- User Defined Functions
- Triggers
- Foreign keys
- Charsets other than utf8



5) MemSQL 투자자에 애쉬튼 커쳐(Ashton Kutcher)가 있다.

애쉬튼 커쳐는 IT에 관심이 많은 것 같다. 사진 공유 SNS인 Path(※ Path 공동창업자 중의 한명이 냅스터의 공동차업자 '숀 패닝')에도 투자를 했다. flipboard에도 투자하고.

2. 실제 사용해보기

MemSQL 사이트( http://memsql.com/ )에서 메일주소 입력하고 다운로드 받으면 된다.

- 64비트만 지원
- RHEL(또는 CentOS)의 경우 6.0 이상

바이너리 받아서 압축만 풀면 끝. 그리고, MySQL client 로 접속하니 정말 잘 되더라.


# ./memsqld -u root --port 3307 & <-- MemSQL 데몬 실행
#
# mysql -u root -h 127.0.0.1 -P 3307 --prompt="memsql> "
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 250
Server version: 5.5.8 MemSQL source distribution



쿼리를 실행하면 아래처럼 쿼리를 C++로 컴파일하게 된다. 그래서 초기 쿼리는 실행시간이 좀 걸리고, 그 이후는 MySQL보다 나은 성능을 보인다.
아래 'miliseconds'숫자는 생각보다 높긴한데, 실제 운영하는 DB서버라면 훨씬 낮은 수치를 보일 것이다.
맛보기 테스트를 하려고 듀얼코어, 4G 서버에서 설치한 것이다.


1688649195 2012-06-26 16:22:23 INFO: Query test.'select count(*) from test2' compiled in 669 miliseconds
2140046715 2012-06-26 16:29:55 INFO: Query test.'INSERT INTO test2(name, date) values (?, now())' compiled in 1369 miliseconds
3317465154 2012-06-26 16:49:32 INFO: Query test.'select name from test2 where id = @' compiled in 714 miliseconds
9867440156 2012-06-26 18:38:42 INFO: Query test.'update test2 set name = ^ where id = @' compiled in 1390 miliseconds


3. 성능은?

- php 5.3에서 microtime으로 시간 체크. 각 쿼리별로 5만회 실행한 시간 체크. 테스트는 3회씩.
- insert : INSERT INTO test2(name, date) VALUES ('aaaaa', now())
- select : SELECT name FROM test2 WHERE id = $i
- update : UPDATE test2 SET name = 'bbbbb' WHERE id = $i

테스트 환경은?

- 설정 튜닝이 제대로 되지 않은 상태에서 테스트가 이뤄졌고,
- MemSQL의 권장 메모리인 8G보다 적은 4G에서 테스트를 했다.
- 서비스에 투입할 수도 없는 상황이고,
- 서비스 환경에 근접하게 테스트 요청을 할 수도 없으므로

아래 수치는 성능이 MySQL보다 낫긴 낫구나라는 정도로만 이해해야 한다. 절대적인 것으로 봐서는 안된다. 정말 참고만.
수치상으로는 1.5~2배정도. 아래 수치 단위는 초.
서비스에서는 쿼리도 복잡하고, 다양한 쿼리가 한꺼번에 이뤄지므로 오히려 테스트 결과보다 성능이 더 나을 수 있을 것 같다.


1. INSERT

MemSQL 2.715 2.371 2.491
MySQL  4.004 3.974 3.982

2. SELECT

MemSQL 2.484 2.772 2.741
MySQL  4.271 4.296 4.088

3. UPDATE

MemSQL 2.380 2.527 2.177
MySQL  4.283 3.975 3.968


* 참고글 :
  Ex-Facebookers launch MemSQL to make your database fly (2012.6.18)

Posted by 좋은진호
일상2012. 6. 20. 19:35

유튜브에 'Lego Data Center'라는 제목의 동영상이 올라왔다.

레고사의 데이터 센터인가 했는데, 전혀 아니다. 레고로 만든 데이터 센터였다. 그럴 듯 하게 잘 만들었다.



  • 5772 pieces
  • 28 Minifigures
  • 1 Light Brick
  • 1m fiber optic strand
  • 8 hours building time

한달 전에 자주가는 카페에서 토스트세트를 시켰다.
이 토스트세트가 '장난감'이 될 수 있겠다 싶었다. 일명 '토스트젠가'(?).

토스트세트[ 꽃, 이글루, 탑 ]


꽃, 이글루, 탑. 토스트가 여러개면 1시간도 놀 수 있겠더라. 배만 고프지 않으면 말이다.
여러명이 세트를 시키면 과연 어떤 작품이 나오게 될까.

Posted by 좋은진호
시스템이야기2012. 5. 29. 18:19

bash

1. seq 명령

GNU의 coreutils패키지에는 seq명령(리눅스에 기본 설치, FreeBSD는 /usr/ports/sysutils/coreutils 포트를 설치하면 gseq명령으로 설치됨)이 있다. seq는 숫자를 순차적으로 출력해주는 명령이다. 예를 들어 1부터 5까지, 또는 1부터 10까지 2씩 증가하여 출력하고 싶다면 seq사용하면 된다.

$ seq 1 5
1
2
3
4
5
$ seq 1 2 10
1
3
5
7
9

bash 쉘스크립트의 for문에서 seq명령을 사용한 예이다. 1부터 31까지 순차적으로 출력된다.

#!/bin/bash

for i in `seq 1 31`
do
    echo $i
done


2. bash에서 순차적 숫자(sequential numbers)

bash 3.0이상 부터는 loop에 순차적 숫자를 사용할 수 있다. 아래는 seq를 썼을 때와 같은 결과가 나온다.

#!/bin/bash

for i in {1..5}
do
    echo $i
done

[ 결과 ]
1
2
3
4
5

bash 4.0이상 부터는 증가치(increment)를 지정할 수 있다.

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {1..10..2}
1 3 5 7 9


3. seq명령과 bash 순차적 표현의 각각의 장점

* seq 명령을 사용할 때 장점

1) 실수형으로 증가할 수 있다.

$ seq 1 .1 10
1.0
1.1
1.2
1.3
1.4
1.5
1.6
... 생략 ...

2) 구분문자를 지정할 수 있다. 기본은 줄바꿈

$ seq -s " + " 1 10
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10

* bash에서 순차적 숫자를 쓸 때 장점

1) {01..10} 처럼 지정하면 01 02 03 처럼 앞에 0을 붙여준다. 0001처럼 지정할 수도 있다. (bash 4.0 부터)

$ echo {01..10}
01 02 03 04 05 06 07 08 09 10
$ echo {0001..10}
0001 0002 0003 0004 0005 0006 0007 0008 0009 0010

2) 문자도 순차적으로 출력할 수 있다. {a..z} 나 {A..Z} 처럼

$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
$ echo {a..z..2}
a c e g i k m o q s u w y


Posted by 좋은진호
시스템이야기2012. 5. 8. 18:25

SSD 스토리지의 필요성은 느끼는데, 아직은 보편화하기에는 가격이 부담스럽다. 하지만 점점 기대된다.
초고성능과 적당한 수준의 용량이 필요하다면 'PCIe'기반의 메모리 스토리지(대표적인게 스티브워즈니악이 CSO로 있는 Fusion-io)가 최적의 조건일 것이고,
고성능과 고용량이 필요하다면 'SSD스토리지'가 최적의 선택일 것 같다.

SSD Impact 2012 세미나[ SSD Impact 2012 세미나 ]


5월 4일 금요일에 있었던 'SSD Impact 2012' 세미나에 참석했다. 여러 개의 부스가 마련되어 있는데, 그중에서 SSD기반의 scale-out NAS 제품을 개발 판매하는 블랙아이옵스(BlackIOPS)를 찾았다.

SSD Impact 2012 세미나장의 블랙아이옵스 부스[ 블랙아이옵스 부스 ]


블랙아이옵스( http://blackiops.com/ )는 올해 처음 들어봤고, 스토리지는 이 날 처음봤다. 이제 막 국내에 런칭되었기 때문에.
블랙아이옵스의 엔지니어(총판 글로벌텔레콤 엔지니어)에게 몇가지 궁금한 사항을 물어보고 간단히 정리했다.

< 기본 >

  • 어플라이언스 장비로 별도의 NFS서버나 CIFS서버 없이 네트웍 스위치나 SAN스위치에 연결해서 사용한다.
  • NFS, CIFS등 지원
  • 리눅스 기반의 다큐OS(DarqOS) 사용. 쉘을 직접 한번 볼 수 있었으면 좋겠다. ^^
  • 24bay 모델은 최초 node 2개부터 초기 구성 가능, 48bay 모델(DM800, DM900모델)은 node 1개만으로 초기 구성 가능
  • HDD + SSD Hybrid 형태는 지원하지 않는다.
    SSD 전용 스토리지. OS는 SSD에 최적화되어 있다.
    앞으로 SSD스토리지 시대가 될 것으로 보고 SSD 전용 스토리지를 출시.
  • SSD는 MLC(Multi Level Cell)방식, SATA3 인터페이스(6Gb/s)
  • 단일볼륨으로 1PB이상 구성 가능
  • 데이터중복제거, 암호화, 압축 지원(DM500, DM600, DM800, DM900모델중 DM600과 DM900이 지원)

블랙아이옵스[ 블랙아이옵스 스토리지. 위 2개는 24bay 모델, 맨아래 1개는 48bay 모델 ]

< 운영 >

  • GUI환경 (세미나장에서는 GUI를 볼 수 없었다.)
  • I/O 모니터링 : GUI에서 실시간 모니터링 가능. 인터페이스별로도 실시간 모니터링 가능
  • SNMP 지원


< 인터페이스 구성 >

  • FC와 이더넷 인터페이스를 '동시'에 사용할 수 있다. 단, 각 인터페이스별로 다른 볼륨을 보게 된다. 동일 볼륨을 보는 것을 권하지 않음.
  • 이더넷 1G 2port를 기본으로, FC 등의 인터페이스 확장해서 사용
  • 8Gb FC포트 X 4개. FC포트 추가 가능(슬롯에 꽂아서 추가하는 방식)

24bay모델은 1개 여분 슬롯 제공, 48bay모델은 2개 여분.
지원 인터페이스는 10G, FC, iSCSI, infiniBand, FCoE

블랙아이옵스[ 블랙아이옵스 스토리지 후면부. 위는 24Bay, 아래는 48Bay 모델 ]

일반 서버처럼 생겨서, 외관은 다소 실망스러웠다. 인터페이스는 슬롯에 꽂아서 추가한다.

블랙아이옵스 8G FC x 4포트[ 8G FC x 4포트 ]


< RAID 및 disk 구성 >

일반 스토리지의 RAID개념과는 다른 구성이다.

1) 1개 node가 하나의 물리적 볼륨
2) 2개 node일 경우 node끼리 미러링 개념
3) 3개 node일 때, 1개 node의 disk 장애시 다른 1개 node로 미러링되어 문제없음. 1개 node에 disk 여러개가 장애나도 서비스 문제없음
4) 3개 node일 때, 2개 node에 1개씩 disk가 장애시 데이터 손실 발생 가능
5) Hot spare disk별도로 필요없음

일반적인 스토리지는 RAID로 볼륨을 만들지만, 블랙아이옵스는 별도의 Hot spare와 RAID없이 구성하여 1개 노드가 1개의 디스크처럼 동작한다. 따라서 3개 노드를 구성한다면 각 1개 노드가 디스크 1개처럼 작동하므로, 디스크 3개를 묶은 RAID5개념으로 이해하면 쉬울 것이다.



Posted by 좋은진호
IT이야기2012. 3. 14. 08:30
Akamai(아카마이)의 서버는 현재 105,000대의 서버로 운영중이라고 한다. 78개국의 ISP와 1900여개의 망에서 서비스 중이다. (Data Center Knowledge의 'Akamai Now Running 105,000 Servers' )

Akamia의 NOC(Network Operating Center)

[ Akamia의 NOC(Network Operating Center) (출처 : Pingdom ]

Akamai도 2~3년 사이(2009년에 48,000대)에 2배 이상 증가했다. 저쪽 동네는 쓴다하면 10만대 이상, 좀 덜 써도 몇만대하는 곳은 여러 군데인 것 같다. Akamai 외의 서버 대수는 Data Center Knowledge에서 꾸준히 업데이트를 하고 있다. (멋져~~) ( 'Who Has the Most Web Servers?' )

  • Akamai Technologies: 105,000대 (company, 2012.3월)
  • OVH: 100,000대 (company, 2011.7월)
  • SoftLayer: 100,000대 (company, 2011.12월)
  • Rackspace: 79,005대. 클라우드 서비스로 급증 (company, 2011.12.30)
  • Intel: 75,000대 (company, 2011.8월)
  • 1&1 Internet: 70,000대 이상 (company, 2010.2월)
  • Facebook: 60,000대 (추정치, 2009.10월)
  • LeaseWeb: 36,000대 (company, 2011.2월)
  • Intergenia: (PlusServer/Server4You), 30,000대 (company, 2011년)
  • SBC Communications: 29,193대 (Netcraft)
  • Verizon: 25,788대 (Netcraft)
  • Time Warner Cable: 24,817대 (Netcraft)
  • HostEurope: 24,000대 (Company)
  • AT&T: 20,268대 (Netcraft)

구글은 공식적인 서버대수를 발표하지 않기 때문에 몇대인지는 명확하지는 않지만, 2011년에 대략 90만대로 추정된다.

NHN은 2013년 상반기 오픈을 목표로 춘천 데이터센터를 짓고 있다. 1만5천평 규모에 1500억원을 투자한다.
서버는 구글이나 페이스북처러 조립서버로 구성한다는 얘기가 들린다. 그리고 서버는 PSU을 없애고 AC전원이 아닌 DC전원을 공급받을 것이라고 한다. AC전>원이라면 AC -> DC로 전환할 때 전력 손실이 발생한다. 그런데 DC전원을 공급받으므로 전력 손실이 줄어들어 효율이 높아질 것이다.

NHN 도시첨단산업단지 조감도. 춘천 데이터센터

[ NHN 도시첨단산업단지 조감도. 도로 아래쪽이 데이터센터로 추정 ]


현재의 네이버 서버와 춘천 데이터센터가 오픈할 시점의 서버는 몇대일지 궁금해진다.


* 관련글
2011/04/20 - Facebook의 데이터센터와 서버
2010/06/30 - 페이스북(Facebook)의 서버 대수는 6만대 이상?
2009/06/01 - 해외 주요 업체의 서버 대수는?
2009/04/10 - 구글, 구글 서버와 데이터센터 발표자료를 풀 동영상으로 공개

Posted by 좋은진호
시스템이야기2011. 8. 31. 17:15
지난주 '아파치 웹서버를 한방에 다운시키는 Range요청 취약점'이 발표되었다.

apache 웹서버


국내에서는 이 DoS 취약점에 대해 너무나 조용하지만, 한방에 서버를 다운시킬 수 있는 심각한 문제이다. 아파치 웹서버(Apache)에 정상적이지 않은 형태로 Range 헤더를 요청하면, 웹서버의 load는 단 몇초만에 급상승하여 서버는 응답을 처리할 수가 없다.

아파치 1.3, 2.0, 2.2버전대 모두 DoS 취약점이 존재한다. 오늘 DoS 취약점을 패치한 2.2.20 버전을 발표했다.

SECURITY: CVE-2011-3192 (cve.mitre.org) core: Fix handling of byte-range requests to use less memory, to avoid denial of service. If the sum of all ranges in a request is larger than the original file, ignore the ranges and send the complete file. PR 51714.

예전 1.3.x버전 운영중인 분들은 더 이상 지원하지 않는 버전대를 버리고 2.2.x대로 갈아타시기 권장한다. 2.0.x버전대는 조만간 발표될 것이다.
2.2.20 테스트 결과, 해당 취약점이 패치된 것을 확인했다.


Posted by 좋은진호