시스템이야기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. 23. 12:54

'서울국제도서전'(코엑스, 6.20~6.24)에서 '노벨문학상 수상작가 특별전'은 꼭 둘러봐야 한다.


2012 서울국제도서전, 노벨문학상 수상작가 특별전노벨문학상 수상작가 특별전



헤밍웨이, 알베르 까뮈, 헤르만 헤세, 권터그라스, 버드런트 러셀, 베케트, TS 엘리엇 등 노벨문학상을 수상한 작가의 친필편지와 사진, 친필 싸인 등을 볼 수 있다.
꼭 진득하게 살펴봐야할 곳이다. 안보면 후회한다. 제대로 후회를. ^^

전세계에서 단 한권뿐인 '헤르만 헤세'의 어른을 위한 그림동화책 '빅토르의 변신'전세계에서 단 한권뿐인 '헤르만 헤세'의 어른을 위한 그림동화책 '빅토르의 변신'


헤르만 헤세 기념주화, 데미안' 초판본, '헤르만 헤세'의 안경헤르만 헤세 기념주화, 데미안' 초판본, '헤르만 헤세'의 안경


헤르만 헤세의 서재헤르만 헤세의 서재


헤르만 헤세용 타자기헤르만 헤세용 타자기


노벨상수상 작가들의 얼굴을 담은 수상기념 메달과 동전노벨상수상 작가들의 얼굴을 담은 수상기념 메달과 동전


알베르 까뮈의 친필편지와 사진. 간지남. ^^알베르 까뮈의 친필편지와 사진. 간지남. ^^


권터그라스의 친필편지와 사진권터그라스의 친필편지와 사진


버트런드 러셀의 타이핑 편지와 친필싸인버트런드 러셀의 타이핑 편지와 친필싸인


사무엘 베케트의 친필편지와 사진사무엘 베케트의 친필편지와 사진


알베르 까뮈의 노벨문학상 수상 보도 신문. 신문 맨위를 보니 1957년이네요.알베르 까뮈의 노벨문학상 수상 보도 신문. 신문 맨위를 보니 1957년이네요.


꾕과리에 알베르 까뮈꾕과리에 알베르 까뮈


헤밍웨이헤밍웨이


극작가 버나드 쇼의 싸인. 이외에 한쪽 벽면은 수상자들의 다른 싸인들이 전시되어 있다.극작가 버나드 쇼의 싸인. 이외에 한쪽 벽면은 수상자들의 다른 싸인들이 전시되어 있다.



* 2012/06/23 - [일상] 2012 서울국제도서전, 북아트에 빠지다

* 2011/06/18 - [일상] 흥미진진한 2011 서울국제도서전


Posted by 좋은진호