시스템이야기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이야기2010. 1. 13. 12:41
BSD Magazine
작년 4월에 발매되었던 'BSD Magazine' ( http://bsdmag.org/ )이 2월부터 온라인 버전으로 무료 제공된다고 BSD Magazine 편집장이 밝혔다. 또한 현재까지 발매된 잡지를 온라인으로 다운로드 받을 수 있다. 메일주소만 입력하고 -> 메일로 받은 인증URL을 클릭하면 -> pdf파일을 다운로드 받을 수 있다. 2010년 1월 잡지를 받아봤는데, 84페이지의 알찬 내용이 들어있었다.



다음은 BSD Magazine 편집장이 FreeBSD 메일링에 보낸 내용이다.

[FreeBSD-Announce] BSD Magazine goes free!
We are happy to announce that BSD Magazine is transforming into a free
monthly online publication. The online version of BSD Magazine will stay
in the same quality and form. It will look like the BSD magazine one is
familiar and comfortable with. Please sign up to our newsletter at
www.bsdmag.org and get every issue straight to your inbox. Also, you can
now download any of the previous issues from our website. The first
online issue -- 2/2010 -- is coming out in February. Please spread the
word about BSD Magazine.

Best regards,
Michal Gladecki, Editor-in-Chief of BSD Magazine

국내 잡지에서 BSD관련 내용을 보기 힘든데, BSD Magazine의 무료 선언은 단비같은 소식이다. 이제 좀 더 geek하게 놀아볼까?

* 관련글
  - BSD 매거진, 4월에 ( 2008.2.9 )
 
Posted by 좋은진호
IT이야기2009. 7. 24. 09:00
BSDstats.org 에는 BSD 계열 OS의 사용 통계 정보를 볼 수 있다. 이 통계는 BSDStats툴을 통해 이뤄지는데, PC-BSD와 DesktopBSD는 기본적으로 BSDStats툴이 설치된다. 그러나 FreeBSD등을 포함한 나머지 계열은 수동으로 설치해야 한다. 따라서 PC-BSD와 DesktopBSD의 비율이 상대적으로 높을수 밖에 없다. 현실을 그대로 반영한 것이 아니니 그냥 재미삼아 보면 된다. 참고로 FreeBSD는 /usr/ports/sysutils/bsdstats 에서 설치하면 된다.

  • PC-BSD     16,922 (71.96%)
  • FreeBSD      5,336 (22.69%)
  • DesktopBSD 1,087 (4.62%)
  • NetBSD           64 (0.27%)
  • OpenBSD        52 (0.22%)
  • DragonFly       29 (0.12%)
  • MidnightBSD   13 (0.06%)
  • MirBSD            8 (0.03%)
  • Debian GNU/kFreeBSD 6 (0.03%) <-- 오~ Debian GNU/kFreeBSD 사용자도 있다.
freebsd

FreeBSD는 OS 버전별로 어느 정도 사용하는지 i386기준으로 확인해봤다.
http://www.bsdstats.org/bt/releases/os/FreeBSD.html
  • 6.x     2,257 (59.93%)
  • 7.x     1,142 (30.32%) <-- 작년 2월에 나온 7.x대 비율이 생각보다 높다.
  • 5.x     179
  • 4.x     139
  • 8.x     49

그런데 눈에 확 들어오는 릴리즈 정보가 하나 있었다. 7.2-YAHOO-20090507 오~ Yahoo? 그 이전 자료를 검색해보니 7.1-YAHOO-20081204 가 나온다. 야후에서 직접 등록한 것일까? 야후는 FreeBSD 프로젝트를 후원하고, FreeBSD OS도 많이 운영하는 것으로 알려져 있다. 그래서 더욱 궁금해진다.


다음은 Netcraft에서 yahoo.com 으로 확인한 OS 정보.
yahoo의 OS

[ yahoo.com의 OS정보. netcraft에서 확인한 정보 ]



Posted by 좋은진호
IT이야기2009. 4. 27. 18:32
youtube 유튜브
작년말 유튜브(YouTube)에 BSDConferences 채널이 만들어진 이후 지금까지 모인 동영상이 벌써 50개가 되었다. BSD인증시험이 있다는 것을 처음알게 된 것이 여기에 등록된 'MeetBSD 2008'행사 동영상이었다. FreeBSD 임베디드에 대해 더 깊이 알게 된 것도 바로 여기였다.


[ 최근에 올라온 'faster packets: performance tuning in the openbsd network' 동영상 ]

처음에 이 채널에 갈 때는 슈퍼가는 느낌이었다. 이제는 대형마트에 들어선 느낌이다. 혼자 있으면 그저그런 평범한 존재에 불과 했을테지만, 함께 모이니 남다른 가치를 지니게 되었다. 역시 모이면 그 가치는 커진다. 마치 '멧칼프의 법칙'처럼.

Posted by 좋은진호
시스템이야기2009. 1. 19. 19:23

FreeBSD 7.1의 큰 변화는 첫째 기본 스케쥴러의 변경, 두번째 '트레이싱, 디버깅 그리고 모니터링의 강화'라고 할 수 있을 정도로 이부분의 발전이 돋보인다. 달라진 것을 간단히 적어본다.

1. SCHED_ULE 스케쥴러

GENERIC 커널에서 기본 스케줄러가 SCHED_4BSD 에서 SCHED_ULE 으로 변경되었다. 7.0에서는 커널 컴파일을 통해서 SCHED_ULE 로 변경할 수 있었다.

options         SCHED_ULE               # ULE scheduler

2. DTrace

   OpenSolaris의 DTrace가 드디어 FreeBSD에 포팅되었다.  DTrace 사용을 위해서는 커널 설정 파일에 다음을 추가한다.

options         KDTRACE_HOOKS           # Kernel DTrace hooks
options         DDB_CTF

   그리고, 모든 소스는 CTF 옵션을 포함된 상태로 리빌드되어야 한다.

 # cd /usr/src
 # make WITH_CTF=1 kernel

DTrace사용을 위한 자세한 준비 과정은 http://www.freebsd.org/doc/en/books/handbook/book.html#DTRACE 에서

3. 몇가지 명령어의 옵션 추가

   1) top 명령에서 -P 옵션으로 CPU별 통게를 볼 수 있다. 리눅스 top에서 '1'를 눌러을 때와 같은 것으로 보면 되다.
      (이 옵션은 FreeBSD 6.4에서도 사용 가능)

last pid: 96507;  load averages:  0.00,  0.00,  0.00                            up 5+04:46:52  19:08:27
25 processes:  1 running, 24 sleeping
CPU 0:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 3:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 4:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 6:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 12M Active, 7956K Inact, 37M Wired, 1088K Cache, 13M Buf, 1941M Free
Swap: 4096M Total, 4096M Free

   2) top 명령에서 -a 옵션으로 프로세스의 argument를 볼 수 있다.

  [ 옵션 사용전 ]
  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
39948 coffeenix   1  44    0  8432K  2792K select 0   0:23  0.00% sshd
  857 root        1  44    0  5880K  2372K select 1   0:04  0.00% sendmail
  867 root        1   8    0  3212K  1036K nanslp 2   0:01  0.00% cron

  [ top -a ]
  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
39948 coffeenix   1  44    0  8432K  2792K select 0   0:23  0.00% sshd: coffeenix@ttyp0 (sshd)
  857 root        1  44    0  5880K  2372K select 1   0:04  0.00% sendmail: accepting connections (sendmail)
  867 root        1   8    0  3212K  1036K nanslp 2   0:01  0.00% /usr/sbin/cron -s

   3) vmstat  -P 옵션으로 CPU별 통계를 볼 수 있다. (이 옵션은 FreeBSD 6.4에서도 사용 가능)

# vmstat -P 1
 procs      memory      page                    disks     faults         cpu0     cpu1     cpu2     cpu3    
 r b w     avm    fre   flt  re  pi  po    fr  sr da0 da1   in   sy   cs us sy id us sy id us sy id us sy id
 0 0 0  82940K   891M    29   0   0   0    29   7   0   0   16  100  449  0  0 100 0  0 100 0  0 100 0  0 100
 0 0 0  82940K   891M     1   0   0   0     0   0   0   0    7  117  370  0  1 99  0  0 100 0  3 97  0  0 100

   4) traceroute 명령에서 -a옵션으로 AS number도 함께 볼 수 있다.

   5) arp 명령에서 reject와 blackhole 키워드를 지원한다.

   6) cp 명령에서 -a 옵션(archive mode)을 지원한다. -RpP 옵션과 동일. 리눅스의 GNU cp 옵션과 동일하다고 보면 된다.

4. /etc/sysctl.conf.local 설정 파일

   rc 스크립트(/etc/rc.d/sysctl)에서 /etc/sysctl.conf 로딩한 후에 /etc/sysctl.conf.local 설정도 로딩하도록 되어 있다.
   따라서 서버별 개벌 설정은 sysctl.conf를 수정하지 않고 /etc/sysctl.conf.local에 넣어도 된다.

5. truss 명령

   truss는 리눅스의 strace, 솔라리스의 truss처럼 프로세스의 시스템 콜을 추적한다. FreeBSD 6.x 버전에서는 truss를 사용하기 위해서 아래처럼 process 파일시스템을 /proc에 마운트 해줘야 했다. 그러나 FreeBSD 7.0부터 더이상 procfs 파일시스템에 의존하지 않기 때문에 mount_procfs 명령을 사용할 필요없이 시스템 콜을 추적할 수 있다.

   # mount_procfs /dev/procfs /proc

   사용예) truss ls

   -f 옵션을 사용하면 fock되는 프로세스까지 추적할 수 있다.

6. 부트로더의 변경으로 USB에서 부팅할 수 있고, GPT 레벨 디스크에서 부팅할 수 있다.

* 2008/04/18 - [IT이야기] - FreeBSD 7 관련 도서 2권
* 2008/03/11 - FreeBSD 7.0과 Linux 간의 성능 비교
* 2008/03/07 - [시스템이야기] - FreeBSD 7.0 사용기
* 2008/02/28 - [시스템이야기] - FreeBSD 7.0 릴리즈

Posted by 좋은진호
IT이야기2008. 4. 18. 22:54

FreeBSD 7관련 원서 2권이 나왔다. 그 중에 'Building a Server with FreeBSD 7: A Modular Approach'은
프비유저의 필독서인 'Absolute BSD'와 같은 출판사에서 나왔다. 지금나온 2권의 책은 FreeBSD 7 위주의 책이기 보다는 보편적인 FreeBSD에 약간의 7.0의 내용이 포함되어 있지 않을까...

1. Building a Server with FreeBSD 7: A Modular Approach

FreeBSD7 book

  *  http://www.freebsdos.com/news/2008/04/16/building-server-freebsd-7/
  * Amazon에서 보기

* Running common FreeBSD admin commands and tasks.
* Managing the FreeBSD ports collection.
* Installing third-party apps like Apache, Courier-IMAP, SpamAssassin, CUPS, Cyrus SASL, MediaWiki, and WordPress.
* Setting up MySQL, NTP, ISC DHCP, ISC BIND DNS, PHP, OpenLDAP, OpenSSH, OpenSSL, and OpenVPN.
* Appendixes explain user management, backup/restore, and network protocols. Building a Server with FreeBSD 7 will have readers running their own server loaded with useful modules in no time, with a minimum of hassle.

2. Network Administration with FreeBSD 7

FreeBSD7 book

* http://www.farrokhi.net/blog/2008/04/network-adminis.html
* PACKT Publishing에서 보기

* Set up and manage networking on FreeBSD
* Virtualization with FreeBSD Jails, IPFW and PF
* Configure interfaces, protocols, and routing
* ... 등 ...


[ FreeBSD와 관련 글 ]
* 2008/03/07  FreeBSD 7.0 사용기
* 2008/02/28  FreeBSD 7.0 릴리즈
Posted by 좋은진호
시스템이야기2008. 3. 7. 22:57
FreeBSD 7.0의 사용기 몇가지를 적어보겠다.

1. make buildworld 시간 : 1시간 2분 (FreeBSD 6.x대와 별반 차이 없음)

2. 차세대 전송 프로토콜인 SCTP를 사용하기 위해서는 커널에서 INET, INET6 모두 define되어 있어야 한다. INET6을 define하지 않고 커널 컴파일을 하면 에러가 발생한다. ( /usr/src/sys/conf/NOTES )

    Note YOU MUST have both INET and INET6 defined.
    you don't have to enable V6, but SCTP is
    dual stacked and so far we have not teased apart
    the V6 and V4.. since an association can span
    both a V6 and V4 address at the SAME time :-)
'INET, INET6가 모두 정의되어 있어야 한다. V6를 enable할 필요는 없다. 그러나 SCTP가 dual stack으로 되어 있어서 지금까지 우리는 V6과 V4를 별도로 분리하지(teased apart) 않았다. (dual-stacked라 분리할 필요가 없었다는 의미) 왜냐하면 SCTP 커넥션(association)은 V6과 V4주소가 동시에 펼쳐지기(span) 때문이다.'
SCTP 에서는 커넥션을 association라고 부르므로, 위의 문장중 'association'은 커넥션으로 이해하면 된다.

3.  TCP 디버깅 로그가 이전 보다 자세하다.

1) 6.x 버전
kernel: Connection attempt to TCP ???.???.???.???:??? from ???.???.???.???:??? flags:0x12
2) 7 버전
kernel: TCP: [???.???.???.???]:80 to [???.???.???.???]:64938 tcpflags 0x12<SYN,ACK>; tcp_input: Connection attempt to closed port
    그리고, Connection attempt 외에 또다른 로그.
kernel: TCP: [???.???.???.???]:21 to [???.???.???.???]:40255 tcpflags 0x18<PUSH,ACK>; tcp_do_segment: FIN_WAIT_2: Received 10 bytes of data after socket was closed, sending RST and removing tcpcb

4. ZFS 파일시스템

/boot/loader.conf 에 다음과 같이 설정하고 리부팅하면, XFS와 ZFS 파일시스템을 사용할 수 있다.
xfs_load="YES"                   # XFS
zfs_load="YES"                   # ZFS

kldstat로 동적링크된 커널모듈(.ko) 목록을 확인해보자.
# kldstat
Id Refs Address    Size     Name
 1    5 0xc0400000 8fb638   kernel
 2    1 0xc0cfc000 81404    xfs.ko
 3    1 0xc0d7e000 b8344    zfs.ko
 4    1 0xc0e37000 6a22c    acpi.ko
#
# kldstat -v
... 생략 ...
 2    1 0xc0cfc000 81404    xfs.ko
        Contains modules:
                Id Name
                 1 xfs
 3    1 0xc0d7e000 b8344    zfs.ko
        Contains modules:
                Id Name
                 2 zfsctrl
                 3 zfs
                 4 zfs_zvol
                 5 zfs_vdev
... 생략 ...

ZFS 사용을 위한 준비는 완료됐다. zfs, zpool 등의 명령으로 ZFS 파일시스템을 만들고 확인해본다.
# zpool create data /dev/da0s1h
# mount
... 생략 ...
data on /data (zfs, local)
# zfs list
NAME   USED  AVAIL  REFER  MOUNTPOINT
data   105K  17.1G    18K  /data

ZFS와 UFS간의 성능테스트와 그 이외의 응용프로그램 등의 성능은 추후 테스트를 해볼 것이다.
덧붙여서 FreeBSD 7 리뷰글과 Live CD로 설치하는 화면을 'Review of FreeBSD 7'에서 볼 수 있다.

※ 시스템 환경 : Dell 1950, CPU 5310 X 2개, 2G 메모리, SAS, No RAID
Posted by 좋은진호
IT이야기2008. 2. 5. 16:28
4월 발매될 예정인 'BSD Magazine'은 BSD계열 OS(FreeBSD, NetBSD, OpenBSD, ...)를 전문으로 다루는 잡지이다. 뉴스, 기사, 튜토리어, HOWTO 등으로 구성되어 있으며, 60페이지 이상의 분량이 될 것이다.

사용자 삽입 이미지

1. what's new (section for news: new releases, upcoming events, latest products)
2. get started (installation and configuration articles)
3. how-tos (tutorials, how-tos, guides on various topics)
4. admin (articles about system administration and security)
5. mms (multimedia section)
6. tips&tricks (useful tips for beginners and advanced)
7.let's talk (section where BSD users and professionals can share their general thoughts about BSD and Open Source)

발간호 가격은 9.99달러. BSD 매거진에 대해서는 http://bsdmag.org 에서 살펴볼 수 있다.

Posted by 좋은진호
IT이야기2008. 1. 28. 21:44
Asus의 초소형, 초저가 노트북인 Eee PC 701에서 FreeBSD를 돌리기 위해, 약간의 수정이 가해진 BSD를 EeeBSD 라고 부른다. Eee PC가 무엇인지는 '한국은 Eee PC 최적 시장, 연내 30만대 목표'  기사를 참고하면 될 것이다.

국내에는 'E월 ee일' 발매된다. ^^ 바로 다음달 22일이다. Eee PC 701의 사양은 다음과 같다.

- 7인치 화면 (800X480)
- 인텔 모바일 펜티엄 CPU
- 10/100M 랜, WiFi 802.11b/g
- 512MB DDR2-400 메모리
- 4GB / 8GB SSD 디스크 채택
- 웹캠
- 0.92kg
- Windows XP Home 버전

사용자 삽입 이미지
[ 이미지 출처 : http://eeepc.asus.com/ ]

이 초소형 노트북에 FreeBSD 7.0-Beta3 를 설치하는데 몇가지 문제가 있다. 이에 대한 해결책을 http://nighthack.org/wiki/EeeBSD 에서 'EeeBSD'이름으로 적어뒀다. Eee PC는 4GB또는 8GB의 작은 용량의 디스크이므로 통파티션으로 사용하기를 권장한다. 또한 디스크가 SSD(Solid State Drives)이니 Swap 파티션을 만드는 것을 권장하지 않는다. 설치시 권장하는 것, 설치후에 네트웍잡는 법, X11, sound 인식 등에 대한 글이 적혀있다.

Eee PC를 구매하고 싶다는 생각은 들지 않으나, 한 대 있으면 좋겠다는 생각이 든다. 특히 세미나 갈 때 좋을 것 같다. 12.1인치 크기와 1kg 초반의 회사 노트북이 있는데, 들고 다니는게 부담스럽다. 그래서 들고 다는 경우가 드물다. ^^

Posted by 좋은진호