マリスト - みる会図書館


検索対象: BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう
73件見つかりました。

1. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

第 するために I 。 z 。 ne 3.53 を使用した。テ スト対象となるファイルのサイズや入 出力のレコードのサイズの違いによる 性能差や、入出力のパターン / 方法によ る差等を計測することができる。 "-R オプションを付加することで、測定結 果を空白区切りでまとめてくれるので、 グラフ化等を行う際にはこれを利用す ることにした。 コマンド実行例 ( このテストはかな り時間がかかる ) . /iozone —Ra * BSD における RA 旧の性能測定 性能測定の前に各 OS で RAID IF がど のように認識されているかを簡単に紹 介しておく。 3ware EscaIade 6410 の場合 FreeBSD 4.3-RELEASE では RAID IF 自体はリスト 1 のように表示される。 また接続されたディスク ( 論理ディ スク ) は RAID 構成によって、メッセ ージの内容が異なる。まずは RAID を 構成せすにすべて単独のドライプとし て使用した場合はリスト 2 のようにな る。 4 台のディスクのすべてを RAIDO と して構成した例はリスト 3 のようにな る。 2 台すっ RAIDI を 2 組構成した場合は リスト 4 のようになる。 "TwinStor" と表 示されているが、実態は RAID 1 である。 3ware では従来の一般的な RAID 1 より も性能を向上させた RAIDI ということ で、マニュアルなどにもこの記述を使 用している。また "lnitialising" と表記さ れているのは、この RAID 構成が正し い構成であることのチェックを受けて いないことを表している。製品の紹介 のところでも記述したが本製品は冗長 072 BSD magazine 2001 No. 8 性のある RAID 構成 (RAID I/RAID 5/RAID 0 + D を使用した場合に、 RAID を構成している各ディスクが正常 に動作している状態であるかを確認す る処理が実行される。一旦チェックを 完了した後は正常な終了処理を経てシ ステム停止すれば、次回はこのチェッ クが不要となるが、 RAID 構成後最初 の起動時や電源断等による異常終了時 にはこのチェックがバックグラウンド で動作する。このチェック処理中はシ ステムの性能が低下するので注意が必 マリスト 1 要である。なお、チェックが済んでい る場合は B 。。 t 時に "NormaI" と表示され る。 リスト 5 は RAID 構成のチェック ( 初 期化 ) 処理開始時と終了時のメッセー ジである。 "lnitialising" 状態で起動した 場合は、 "imtialisation done" となった後 に正常にシステム停止すれば、次回以 降は " N 。 rmal' ' 状態で起動することがで きる。 "unknown" というメッセージは 'lnitialisation" が開始されたという旨の コード (0xc) に対するメッセージがド tweO : く 3ware Storage Contr011er> port 0XC000 ー 0xc00f irq 10 at device 5.0 on pcil tweO: 4 ports, Firmware FE6X 1 .01.18.001 , BIOS BEXX 1 . 06 .00.001 マリスト 2 twed0 : twed0 : twedl : twed2 : twed2 : twed3 : く JBOD , Norma1> on 29314MB ( 60036480 く JBOD , Norma1> on twe0 twedl : 29314MB ( 60036480 く JBOD , Norma1> on twe0 29314MB ( 60036480 く JBOD , Norma1> 0 Ⅱ twe0 twed3 : 29314MB ( 60036480 twe0 sectors) sectors) sectors) マリスト 3 twedl : 29313MB ( 60034432 sectors) twedl : く TwinStor , lnitialising> 0 Ⅱ twe0 twed0 : 29313MB ( 60034432 sectors) twed0 : く TwinStor , lnitialising> 0 Ⅱ twe0 マリスト 4 twed0 : 117254MB ( 240137728 sectors) twed0 : く RAIDO , Norma1> 0 Ⅱ twe0 マリスト 5 twe0 : AEN : twe0 : AEN : マリスト 6 く unknown AEN 0x c > く twed0 : initialisation done> twed0 : く RAIDIO , lnitialising> 0 Ⅱ twe0 twed0 : 58627MB ( 120068864 sectors) twed0 : く RAID5 , Norma1> on twe0 twed0: 87941MB ( 180103296 sectors) マリスト 7

2. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

デ - そン君のソ - ス探検 access ( ) はⅱ bc で定義されており、ファイルのバー ンなどを調べる関数であることがわかりました。 テン : なーんだ、簡単じゃん。ついでに、 main() も見てお こうかな。 main() の中は、リスト 5 のようになっていました。 テン : あ、。 expr ( ) が返す値をひっくり返して、 return して いるね。これで $status は、真のとき 0 、偽のとき 1 になるわけか。さーて、 oexpr ( ) は何をしているのか ソースを眺めてみると、 oexp 「 ( ) は aexp 「 ( ) を呼び出していま した。 aexpr() は nexpr() を、 nexpr() は primary() を呼んでい ました。そしてようやく、 primary() が filstat() を呼び出して いました。 テン : 何だ、 これは一 ? ? ? ファイルが存在し、 read 権があるいう意味。この条 件を満たすときに 、 /etc/defaults/rc. conf を読み込め って書いてあるのかあ。でも、最後の " ドはいったい なんだろう ? 考えていてもわからないので、デーモン君はソースを見てみ ることにしました。 デン : test は / bin の下にあるから、 ソースはん sr/src/bin/test かな。 % cd /usr/src/bin/test % 1ess test . c ソースのある場所を探し出すのは、朝飯前のようです。 モン君は、リスト 3 のようなコードを見つけました。 デン : はは一ん。 " ] " は、単なる引数なんだ。 "test"i [ と いう名前で実行された場合は、引数の最後に " ] " を 指定する必要がある。指定された " ] " は無視される んだね。きっと、カギ括弧のペアとして使ったほう がかっこいいからだね。 次にデーモン君は " - 「 " オプションを調べてみました。 テン : まず、 -r で grep かな。 % grep ¯e ーて test. c FILRD , UNOP} , なんと、デーモン君は " - " で始まる単語を g 「 ep で検索するとき は、オプションと間違われないように " - e ' を指定すことを知 っているようです。 アノ : FILRD って、 file read かな。これと同じ文字列を見 つければいいのかな ? ァーモン君は、 f ⅱ stat ( ) という関数の中にリスト 4 のような コードを見つけました。 でも、 access() って、 test. c では定義されてないなあ。 ライプラリかな ? えい。 % man access ニッショ マリスト 2 、 /etc/rc. conf の一部 if [ —r /etc/defaults/rc . conf ] ; then /etc/defaults/rc . conf f i マリスト 3 test.c:main() の一部 if (strcmp(argv [ 0 ] , if (strcmp(argv[--argc] , error("missing ] " ) ; argv Cargc] = NULL ; マリスト 4 、 test.e:filstat() の一部 switch (mode) { case FILRD: return access (nm , R_OK) マリスト 5 test. c:main() の一部 t-wp = &argv [ 1 ] ; ! oexpr(t—lex(*t-wp) ) ; res return res; マリスト 1 - ⅱ /bin/[ /bin/test の結果 45936 Nov 17 10 : 36 /bin/ [ 9921 —r—xr—xr—x 2 root wheel 45936 Nov 17 10 : 36 /bin/test 9921 —r—xr—xr—x 2 て 00t wheel 2001 No. 8 BSD magazine 143

3. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

Ⅷ 0d0W5 アプリケーションのクロス開発 頭辞として付けられている。 msvc- である。 [ 例 ] i386-mingw32msvc-gcc MinGW では i386-mingw32 d 。 ws を外す必要があるだろう。 リスト 2 は GUI アプリケーションのサンプルである注Ⅱ。 コンパイルは次のとおり。 % i386-mingw32msvc-gcc ー 0 he1102. exe e1102. c リソース —mwindows 標準的な c の関数を使ったプログラムであれば、普通の gcc と同じようにしてコンパイルできる。出力ファイルの 拡張子が . exe であることに注意されたい。 リスト 1 のコンパイルは次のとおり。 オプション % i386—mingw32msvc—gcc ー 0 he110. exe he110 田 . C Windows には GUI アプリケーションとコンソールアプリ ケーションの区別がある。後者を工クスプローラ上でクリ ックするとコマンドプロンプトが開くので一目療然であ る。 MinGW では特にオプションを指定しない場合はコンソ ールアプリケーションとなる。 GUI アプリケーションは -mwindows オプションで指定する。このオプションを指定 すると自動的に -luser32 ー lgdi32 がリンク指定される。 なお、 GUI アプリケーションでは標準入出力が一切使え なくなるので注意する必要がある。パイプも使用すること ができなくなる。 そのため printf デバッグをする場合は一時的に一 mwin マリスト 2 he1102. c printf ( " He110 , main() #include く stdio . h> マリスト 1 hello. c Wor1d! *n") ; return 0 ; MessageBox(NULL, " He110 , Wor1d! " " He110 ” , MB—OK) ; WinMain(HINSTANCE hlnst , HINSTANCE hPrev , LPSTR lpCmd , int WINAPI #include く windows . h> Windows にはリソースファイルというものがあり、 GUI の要素をソースコード外に記述する。 Win32API でプログ ラムを作る上では欠かせない。 リソースファイルは windres を使ってコンパイルする。出 力されたオプジェクトファイルは他のオプジェクトファイ ルと一緒にリンクする。 Windows では exe にアイコン情報が埋め込まれているが、 これはリソースファイルで指定するものである。 リスト 3 はアイコンのリソースの例である。リソース中 で icon. ico ファイルを指定しているため、実際にそのファ イルを用意する必要がある注に。コンパイルは次のとおり。 % i386—mingw32msvc—windres sample. rc sample. 0 Windows での共有ライプラリは DLL (Dynamic Link Library) と呼ばれている注 13 。 ーこに定義 DLL には . def ファイルという定義が必要で、 した関数だけが外部から呼び出せるようになる。 MinGW マリスト 3 sample.rc #include く windows . > IDR_MAINFRAME 工 CON DISCARDABLE ー int nShow) ー 1C0 Ⅱ .1C0 " 注 11 Win32A 円の世界は独特の決まりに満ちあふれていて、スマートな UN Ⅸプログラミングに慣れた目からは非常に奇怪なものに映ることでしよう。 注 12 アイコンファイルは BMP とは異なる独自の形式で、作成にはアイコンエデイタが必要である。 注 13 xxx. dll は ELF での libXXX. so に相当する。 BSD magazine 2001 No. 8 095

4. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

持楽 2 ス加を使おら、のつ ライバのソース中に定義されていない だけであるので特に気にする必要はな 最後は 4 台のディスクによる RAID5 構成のケース ( リスト 6 ) と RAID 0 + 1 (RAID 10 ) のケース ( リスト 7 ) であ " の意味は RAIDI のときと同様である。 NetBSD-current 20010428 では、起動 時にリスト 8 のように表示される。最 初の 2 行は RAID IF 自身の表示で、残 りは接続された論理ディスクの表示で ある。この場合は RAID を構成せずに すべて単独のドライプとして使用した る。 "Normal" や "lnitialising マリスト 8 tweO at pcil dev 5 function tweO : interrupting at irq 10 0 : 3ware Esca1ade 1d0 1d0 : 1d1 1d1 : 1d2 1d2 : 1d3 1d3 : 29314 MB , 3737 cyl , at twe0 unit 3 29314 MB, 3737 cyl, at twe0 unit 2 29314 MB, 3737 cyl, at twe0 unit 1 29314 MB , 3737 cyl , at twe0 unit 0 255 head, 255 head, 255 head, 255 head, 255 head , 63 63 63 63 63 sec, sec, マリスト 9 1d0 at twe0 1d0 : 114 GB, マリスト 10 1d0 at twe0 512 512 512 512 512 bytes/sect bytes/sect bytes/sect bytes/sect bytes/sect x 60036480 x 60036480 x 60036480 x 60036480 x 240137728 sectors sectors sectors sectors sectors unit 0 14947 cyl , unit 0 1d0 : 58627 MB , 7473 cyl , マリスト 1 1 255 head, 63 sec, 512 bytes/sect x 120068864 tweO at pcil dev 5 function 0 twe0 : Esca1ade V5.7 マリスト 12 scsibusO at tweO: 16 targets " 3ware Esca1ade IDE RAID" rev 0X12 : lrq sectors 10 sd0 sd0 : sdl sdl : sd2: sd3 : at scsibusO targ 0 lun 0 : く 3WARE, 29314MB , 3737 cyl, at scsibusO targ 1 29314MB , 3737 cyl , sd2 at scsibus0 targ 2 lun 0 : く 3WARE, 29314MB , 3737 cyl , sd3 at scsibus0 targ 3 29314MB , 3737 cyl , lun 0 : く 3WARE , lun 0 : く 3WARE, 255 head, 63 sec, 512 bytes/sec, 255 head, 63 sec, 512 bytes/sec, 255 head, 63 sec, 512 bytes/sec, 255 head, 63 sec, 512 bytes/sec, Host drive # 00 , > SCS12 0/direct fixed 60036480 sec total Host drive # 01 , > SCS12 0/direct fixed 60036480 sec total Host drive # 02 , > SCS12 0/direct fixed 60036480 sec total Host drive # 03 , > SCS12 0/direct fixed 60036480 sec total 場合の例である。 ディスク 4 台で RAID 0 を構成した場 合の表示はリスト 9 のようになる。特 に "RAID 0 " 等の表示は行われていな リスト 10 は RAID 0 + 1 を構成した場 合の表示である。この場合も同様に 'RAID 10 " 等の表示は行われていない。 論理ドライプには "ld" デバイスが使 用されるが、 dmesg 等ではどのような RAID を使用しているかどうかはわから ない。 FreeBSD のように "lnitialising" や " N 。 rmal " 等の表示は行われないが、 lnitialising が行われる場合には "init started" や "init done" 等のメッセージが コンソール上に表示されるので RAID の 状態も多少は把握できる。 OpenBSD 2.8 ー RELEASE での表示は リスト 1 1 のようになる。まずは RAID IF についての表示が行われる。 特に RAID を構成していない場合は リスト 1 2 のように表示される。見ての とおり、 OpenBSD では sd デバイスとし て認識されている。 次はディスク 4 台で RAID 0 を構成し た場合 ( リスト 1 3 ) と、 RAID 0 + 1 を 構成した場合 ( リスト 14 ) の表示であ る。 OpenBSD の場合も NetBSD と同様 に RAID に関する記述等は出力されな い。また lnitialising の開始 / 終了に関す るメッセージも出力されず、その部分 に関しては、 NetBSD よりも扱いにくい 部分がある。 また接続された論理ディスクは 自体はリスト 1 5 のように表示される。 FreeBSD 4.3-RELEASE では RAID IF AMI MegaRAID Express 300 の場合 4 マリスト 13 scsibus0 at twe0: 16 sd0 at scsibus0 targ 0 lun 0 : マリスト 15 scsibus0 at twe0: 16 sdO at scsibusO targ 0 Iun 0 : targets sd0: 117254MB , 14947 cyl, 255 head, 63 sec, t arget s く 3WARE , Host drive # 00 , > SCS12 0/direct fixed 512 bytes/sec, 240137728 sec t0ta1 RAID 5 の場合、そ く 3WARE , Host drive # 00 , > SCS12 0/direct fixed sd0: 58627MB , 7473 cyl, 255 head, 63 sec, 512 bytes/sec, 120068864 sec total RAIDO 、 RAID 3 、 される。 2001 No. 8 れぞれリスト 16 、 1 7 、 18 の用に出力 BSD magazine 073

5. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

FreeBSD で MoziIIa を使いたい場合は、 せひとも 4.3-RELEASE に上げよう注 2 。 また、 Netsc 叩 e Navigator 等の IPv6 対 応していないプラウザを使いたい場合 は、 wwwoffle 注 3 をパーソナルなプロキ シとして噛ましてあげれば良い。 www offle は KAME が IPv6 化パッチを提供し ている。 FreeBSD の ports/packages で入 れると IPv6 対応になっている。 メール また、 access や mailertable 等のデータ リスト 4 も必す指定しておこう。 address で入ってくることになるので、 でしまう。この場合 IPv4 は mapped ト 3 だけを指定しても IPv4 も吸い込ん mapped address が有効な環境だとリス なお、 FreeBSD でのデフォルトなど くなるためである。 IPv4 のみの kernel だと sendmail が動かな デフォルトで有効になっていないのは、 らも listen するようになる。ちなみに うに指定し sendmail.cf を作ると、どち できない。 . mc ファイルでリスト 2 のよ ままでは IPv6 でメールを受けることは listen するようになっているので、その る。しかし、 sendmail.cf で IPv4 のみ くても IPv6 でメールを出すことができ 使用できる環境であれば、何も考えな にしてコンパイルされており、 IPv6 が FreeBSD 添付の sendmail は IPv6 を有効 けてコンパイルする必要がある。 している。ただし、 -DNETINET6 を付 8.10. x 以降では標準で IPv6 をサポート てることで IPv6 対応していたが、 sendmail 8.9. X では WIDE パッチを当 べースに IPv6 アドレスをそのまま記述 することができる。ただし、 8.12.0. Beta では IPv6 : IPv6 アドレス と「 1Pv6: 」を頭に付けて記述するよう に変更されているので、バージョンア ップの際には注意が必要である。 次に、 PO P サーバーであるが、 Qp 叩 per をはじめ、多くがすでに IPv6 対応になっている。 Qpopper には IPv6 化パッチがある注 4 。 FreeBSD の ports/packages はこのノヾッチ を当てて IPv6 対応している。 ports ゆ ac kages では Qpopper の 3. X 以降は qpopper という名称でインストールされる。ち なみに最新は 4.0.2 である。 /etc/inetd. conf に tcp6 のエントリを追 加することで IPv6 でも接続を受け付け るようになる ( リスト 5 ) 。また、 Qpopper は configure 時に --enable-standalone オプ ションを指定すると inetd を使用せず自 らデーモンとして動作するバイナリを 作成できる。この場合、引数にバイン ドするアドレスを指定できる。たとえ ば IPv6 のみで listen するようにするに は、 となる。 IMAP4 サーバーとしては、バージョ ン 2 以降の cyrus IMAPD 用にパッチが ある注 5 。 cyrus IMAPD はバージョン 1 では inetd より起動されていたが、バージョ ン 2 では master という専用のデーモンを 使用するようになっており cyrus. conf 注 6 で設定する。 FreeBSD の ports/packages で cyrus- im 叩 d をインストールすると、デフォル トで IPv6 、 IPv4 両方で listen するように なっている。 各サービス毎に bind したいアドレス をポート番号との組で指定できるので、 IPv6 のみで listen したい場合、 /usr/local/libexec/qpopper マリスト 2 DAEMON_OPTIONS ( 、 Name=MTA-v4 , DAEMON_OPTIONS ( 、 Name=MTA—v6 , マリスト 3 DAEMON_OPTIONS ( 、 Name=MTA—v6 , マリスト 4 DAEMON_OPTIONS ( 、 Name=MTA—v4 , Fami1y=inet つ Fami1y=inet6 つ Fami1y=inet6 つ Fami1y=inet つ マリスト 5 /etc/inetd. conf での Qpopper の設定 nowait root stream tCP stream tcp6 nowait て 00t pop3 pop3 /usr/local/libexec/qpopper qpopper -s /usr/local/libexec/qpopper qpopper —s 注 2 注 3 注 5 6 Versio. 3 M 。 zi Ⅱ a で IPv6 が利用できるようになったのは 4.2- RELEASE の前ぐらいからなので、 4.3- RELEASE になって初めてリリースでまともに利用できるようにな ったとも言う。 : - ) ://www.gedanken.demon.co.uk/wwwoffle/ www.imasy.or.jp/-ume/ipv6/qpopper4.0.1-iPV6-28105国.diff.gz ( 4.0.2 に対してもそのまま適用できる ) 一一 ht http: ″ FreeBS . imasy. or.jp/—ume/ipv6/cyrus-im 叩 d-2.0.13-ipv6-2()() 105%. diff.gz s/package でインストールすると /usr/local/etc/ にある。オリジナルは /etco BSD m azi 2001 No. 8

6. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

ただし、この場合、 ifconfig -1 を実行 して得られるインターフェイス一覧か ら 100 、 gif* 、 stf* 、 faith* を除いたもの のうち最初のインターフェイスを使用 すると仮定される。ほとんどの場合大 丈夫であると思われるが、これで不具 合がある場合は、 ipv6_network_inter faces で使用したいインターフェイスを 0 て・」 P 定の仕方を覚えるだけである。 正引きは IPv4 では A レコードを使っ て登録するが、これに相当するのが AAAA レコードと呼ばれるレコードで ある。たとえば、 3ffe : 505 : 2 : 1000 : 240 : 96ff : fe48 : 4ea8 という IPv6 アドレスを持つ h 。 st - a を登 録するには、リスト 4 のようになる。 逆引きは、 IPv6 アドレスを 4 ビット 毎に区切り、 16 進表記で逆順に並べる。 また IPv4 の場合に使用する IN-ADDR. ARPA. は、 IPv6 では IP6. INT. となる。 たとえば上記の h 。 st - a だとリスト 5 のよ うになる。 実際に逆引きのゾーンファイルを登 録するには、自サイトに割り当てられ ている IPv6 アドレスを管理するゾーン ファイルを用意する。 こでは、 3ffe: 明示的に指定すると良い。 DNS じで、ほんの少し、 IPv6 アドレスの指 う。基本的な考え方は IPv4 の場合と同 では、ゾーンファイルを書いてみよ 9.1.1 である。 る。ちなみに本稿執筆時点での最新は 新しいものを使用することをお勧めす BIND9 を使用する場合、できるだけ になる。 IPv6 アドレスを書くことができるよう で /etc/resolv. conf での nameserver 行に けるようになる。すなわち、各ホスト と書くことで IPv6 でのクエリを受け付 1isten—on—ipv6{ ANY ; } ; options { BIND9 では、 named. conf に サポートされている注 2 。 サポートされていない。 2. は BIND9 で BIND8 では 1. は満たしているが 2. は 当するのが AAAA レコードである。 の 2 つがある。 IPv4 での A レコードに相 2. IPv6 でクエリできる 1. AAAA レコードを扱える DNS の IPv6 サポートには、 505 : 2 : : / 48 のゾーンを db. 3ffe : 505 : 2 とい うファイル名で作成することにする。 ゾーンファイルには、リスト 6 のように、 逆引きの記述から 2.0.0.0.5.0.5.0. e. f. f. 3. IP6. INT. を除いた部分を書く。あと、 もちろん SOA レコードなども書いてお マリスト 4 host—a IN マリスト 5 AAAA 3ffe : 505 : 2 : 1000 : 240 : 96ff : fe48 : 4ea8 8 . a. e . 4 . 8 .4. e . f . f . f . 6 . 9 . 0 . 4 . 2 . 0 . 0 . 0 . 0 . 1 . 2 . 0 . 0 . 0 . 5 . 0 . 5 . 0 . e . f . f . 3 . 工 P6 . INT . マリスト 6 8. a. e . 4.8.4. e . f . f . f. 6.9.0.4.2.0.0.0.0.1 IN PTR host-a. example . com. マリスト 7 zone " 2 . 0 . 0.0 . 5.0.5.0. e . f . f . 3. IP6. INT" { type master ; f i le " db .3ff e : 505 : 2 " ・ ume@piano : 353 > /usr/local/bin/nslookup —sil -type=any www. imasy ・ 0 て・ JP ・ Server : Address : 2001 : 200 : 300 : 1 : 220 : edff : fe88 : 788C 2001 : 200 : 300 : 1 : 220 : edff : fe88 : 788C # 53 Non—authoritative answer : w imasy ・ or ・ jp has AAAA address 3ffe : 505 : 0 : 1 :220:edff : fe88 : 788C www.imasy ・ or ・ jp has AAAA address 2001 : 200 : 300 : 1 : 220 : edff : fe88 : 788C Authoritative answers can be found from: Address: 202.227.24.5 www ・ lmasy ・ or ・ JP Name : imasy ・ 0 て・ JP imasy ・ or ・ jp light . imasy. 0 て・ JP light . imasy ・ or ・ JP light . imasy. or ・ JP tasogare. imasy. nameserver = light . imasy. 0 て・ JP ・ nameserver = tasogare . imasy. 0 て . JP ・ internet address = 202.227.24.4 has AAAA address 2001 : 200 : 300 : 1 : 2a0 : c9ff : fe61 : 6521 has AAAA address 3ffe : 505 : 0 : 1 : 2a0 : c9ff : fe61 : 6521 internet address = 202.227.24.5 図 3 B 爪 D9 版 nslookup による出力例 2 KA ftp : 、味 e ′ net { BIND8 用のパッチを提供している。 ft ame. net/pub/kame/misc/bind8-823-v6-20010430. diff . gz . をを ! p ′ 0t0 ( Versio 28 、 BSD ma azin 2001 No. 8 128

7. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

持楽 2 ス加を使おらのつ この記述を行った後に「 ccdconfig - c 」を実行するか、リプートを行うこ とで、 ccd0 デバイスが使用可能となる。 このときの注意点として ccd を構成する デバイスには以下の制限がある。 ・ディスクの raw パーティションは使用 って異なる ) 制限がある。 ・パーティションのタイプに ()S によ できない。 " 4.2BSD ” は可、 ど。 " ccd ”は可、 'unused" は不可な ccd0 デバイスができたら、 disklabel を書いて newfs することで普通のパーテ イションとして使用することができる。 RAID 1 ( ミラーリング ) を行う場合 同様にリスト 2 のような /etc/ccd. conf を用意する。 マリスト 1 # /etc/ccd. conf # Configuration この記述を行った後に「 ccdconfig - c 」を実行するか、リプートを行うこ とで、 ccd0 デバイスが使用可能となる。 で、 RAID 構成の決定を行うとよいだ の確保等の要素を十分に検討した上 の確保 / 障害時の対応手順の確立 / 性能 多い。コストは掛からないが、信頼性 ウェア RAID の場合はそうでないことが する方法が用意されているが、ソフト 合は、大抵簡単な操作で自動的に回復 く必要がある。ハードウェア RAID の場 障害からの復旧手順なども確認してお ソフトウェア RAID を用いる場合、 ションとして使用することができる。 書いて newfs することで普通のパーティ ccd0 デバイスができたら、 disklabel を # ccd ccd0 ileave 128 マリスト 2 # /etc/ccd. conf # Configuration # ccd ccdO ileave 128 file for flags none file fo て flags 0X7 concatenated disk devices component devices /dev/daOe /dev/dale /dev/da2e concatenated disk devices /dev/daOe /dev/dale /dev/da2e component devices RA 旧 O のチューニング JNUG みのうらまこと minoura@jp.netbsd.0「g (DISCONNECT) 、物理的なディスクからドライプ内部の 2. コマンドを受けたターゲットは、一度バス使用権を放棄し マンドを投げる 用権を獲得し、ターゲット (SCSI ティスク ) に READ コ 1. イニシェータ ( SCSI ホストアダブタ ) は、 SCS レヾスの使 例として、読み込みを行う場合を取り上げる。 まず、典型的な SCSI ディスクの動作を復習してみよう。 場合、どのように構成するのが効果的だろうか。 R DO を用いて高速 / 大容量のファイルシステムを構築する バッフアメモリへのテータ転送を開始する 3. バッフアメモリにデータが溜まったある時点で、ターゲッ トはバス使用権を獲得し (RECONNECT) 、イニシェータ に一気にテータを転送する 4. 転送量が多い場合 2 と 3 を繰り返す この DISCONNECT/RECONNECT の動作は、 SCSI プロト り、また 1 台のティスクしか利用しない環境や、シングルタ 対する SCSI ティスクの最大のアドバンテージだとされてお slave のテパイスは遊ぶことになる。これが、 IDE ティスクに 送が完了するまでそのチャネルは占有される。言い換えれば、 されたティスクにコマンドを投げてから、すべてのテータ転 はこの動作がなく、コントローラがたとえば master 側に接続 SCS レヾスを効率的に共有することができる。 IDE (ATA) に コルの特徴の 1 つで、これによりたくさんのテパイスで 1 つの 2001 No. 8 BSD magazine 069

8. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

非常にバランスがとれた構成であるこ ののキャラクタ単位の処理を行うと、 性能の測定にあたって とがわかると思う。また ccd による構成 RAID といえども単体のドライプの性能 も性能面に関しては予想以上に良い結 に近い性能しか得られないことも見え 性能測定は FreeBSD での調査を中心 果が得られているのではないかと思わ てくるだろう。 として実施し、 NetBSD/OpenBSD に関 れる。全般を通して、プロックによる 次に NetBSD ( 図 3 ) や OpenBSD しては測定対象 (RAID 構成 ) を絞っ 入出力で大幅な性能向上が見られるも ( 図 4 ) での結果を紹介する。基本的な た範囲で行っている。 FreeBSD に関し ては、 ccd によるソフトウェア RAID の 実現やより多くの RAID 構成でのテス トを行っているので、全般的な傾向等 は FreeBSD での結果を参考にしてほし い。また、ファイルシステムのパラメ ータやマウントオプション等は特に何 も指定していない。 softupdate 等を利用 することで、結果が大きく変わること も十分に考えられる。 マリスト 16 amrdO : く MegaRAID logical drive> 0 Ⅱ amr0 amrdO : 34988MB ( 71655424 sectors) RAID 0 (optimal) マリスト 17 amrd0 : く MegaRAID logical drive> 0 Ⅱ amr0 amrd0: 26241MB ( 53741568 sectors) RAID 3 (optimal) マリスト 18 amrd0 : く MegaRA 工 D logical drive> on amr0 amrd0 : 26241MB ( 53741568 sectors) RAID 5 (optimal) Bonnie による性能測定 毎の、 ( Sin 可 e &ive 時 ) まず最初に 3ware Escalade 6410 を RAID を構成せずに単なる UItra ATA/ 66 の IF として使用して、ディスクドラ イプ単体の速度を O s 毎に調査した OS 間での性能差という見方をする と、 FreeBSD と OpenBSD とはほば同等 で NetBSD が若干高速という結果が得 られているが、基本的に Read : 23MB/ sec 程度、 write : 20MB/sec 程度と考え てよいだろう。 このディスクを使用して FreeBSD で RAID を構成した場合のグラフは図 2 の ようになる。 性能面では、やはり DISK4 台を使用 した RAID 0 構成がかなり高速であり、 RAID5 の書き込み性能の低さ等もはっ きりと現れている。また RAID 1 でも製 品の謳い文句通りに単独のドライプよ りは 1.5 倍程度の性能の向上が見られ る。 RAID 0 + 1 の性能が意外に低い気 もするが、元のディスクの性能よりは 遥かに高速で信頼性の向上を考えると 25 〔 ( 0 7 三 = ヨ一 ( 図 1 ) 。 ■ FreeS D 43 ■ト Et 田 D ロ 0 nöD 15 ( ー 13 5 0 0 0 」 t ()e 「 Cha 「 ) 0 破 ( c 0 は PJt ( ) 「 02r ) 新叩 t ( 新 ck) 図 1 Bonnie による測定結果 . OS 毎の違い F 「”田 D 43 ー L SE SingE に以 4 ロ SK ) ー 2 ロ SK ) RAIDI RA に 0 + 1 RA に 5 ■ 0 ( rC r ) K/sec ロ 0 p.Jt ( 日 0C2 〃 ・ Output ( ね ) K/sec ■ Input(PerChar) K/sec ■ lnput( Bbck) K/sec 00 以 Mirro 「 ) CCC(Strice) 0 1 0 288 382 90 60 7 師 90 図 2 Bonnie による測定結果 : FreeBSD 074 BSD magazine 2001 NO. 8

9. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

特集 rts01 BSD/OS の場合 BSD/OS では、プート時のネットワ ーク設定を /etc/netstart で行う。 "DO NOT DELETE THIS LINE " の記述より 前に、 ンターフェイス名は exp0 だとしている。 おここでは、 LAN 側のネットワークイ リスト 2 の設定を追加する。な bin と /usr/IocaI/v6/sbin をコマンド実行 ドを実行する場合には、 /usr/local/v6/ められる。ユーザーが KAME のコマン べてん sr/IocaI/v6 ディレクトリの下に集 にインストールされるファイルは、す SNAP kit を使用した場合にシステム kit にのみ含まれる。 れぞれのプラットフォーム用の SNAP ットフォーム用のドキュメントは、そ で示す場所に置かれる。ただし各プラ ストールドキュメントファイルは、表 5 kit を $ { TOPDIR } で展開した場合のイン ついては、注意したほうが良い。 SNAP キュメントが二部にわかれている点に ォームごとの差異を吸収するためにド とができるだろう。ただしプラットフ な人でもさほど苦労なく作業をするこ 文だが、平易な文章なので英語が苦手 良い。インストールドキュメントは英 んできちんと手順通りに作業をすれば SNAPkit に含まれるドキュメントを読 SNAP kit のインストールについては、 KAME SNAP kit を使用した場合 rtadv—exp0=YES / etc / rc. 10Ca1 の設定は変更しない。 start への追加は次の設定だけとし、 なお IPv6 ホストの場合には /etc/net メントを外して有効にする。 また /etc/rc. local の、リスト 4 の行のコ リスト 3 の設定も追加する。 ISP との経路制御が静的の場合には、 パスの前のほうに含める必要があるだ ろう。またネットワーク設定ファイル は /usr/local/v6/etc/rc. net6 となり、 rc. net6. sample からコピーしたあと必要に 応じてこのファイルの内容を調整する。 さらにプラットフォームによって、 /etc/ rc. 10Ca1 などから /usr/Iocal/v6/etc/rc. net6 を呼び出すような設定が必要になる。 IPv6 ルータとして設定するにはまず ip6router=YES とし、設定するインター フェイスとプレフィックス、 route6 dflags へのパラメータ設定などを行い、 ルータ通知デーモン rtadvd を起動する 設定行のコメントを外す。 IPv6 ホスト として設定する場合はインターフェイ スだけ設定すれば良い。 IPv6 ルータの役割のうち最も重要な ものは、 ISP 側ルータとの間のポイン トーポイントリンクの接続である。ユ ーザーサイトのインターネットとの通 信は、すべてこのポイントーポイント リンクを経由して行われるからである。 ポイジトーホイントリンクの接続 マリスト 1 IPv6 環境を構築し ! ! お上を / / ルをも ~ しと丿ノを / り te ′ net tO ( 0 ′ Ve 「 s ー 0 れ 6 1 128 ポイントーポイントリンクには次の ような接続形態がある。 ・ IPv6 ネイテイプ接続 ・ IPv6 / IPv4 デュアルスタック接続 ・ IPv6 over IPv4 トンネリング接続 以下、それぞれの接続形態の特徴を 簡単に説明しよう。 旧 6 ネイティブ接続 ここにあげた 3 通りの中で最も単純 で自然な接続形態が、図 3 の IPv6 ネイ テイプ接続である。 IPv4 の普通の接続 と同様に、 IS P 側に設置されている IPv6 ルータとの間で IPv6 通信用の専用 回線を敷設し、直接接続する形態とな る。 形態としては自然だが、この形式の 接続を提供する ISP は今のところ非常 に少ない。 ISP 側でもポイントーポイン トリンクを受ける IPv6 専用ルータ設備 が必要になるためであろう。 なお図 3 の例は専用回線を用いた常 時接続の形態を表しているが、モデム inet6 2001 : 240 : 19 : 1 : 2d0 : b7ff : fe68 : aae7 64 マリスト 2 ip6addr—exp0='12001 : 240 : 19 : 1 : 2dO:b7ff :fe68: aae7/64" マリスト 4 マリスト 3 def6route=" デフォルトゲートウェイ " echO —n " 工 Pv6 forwarding : sysctl ー net . inet . ipv6. forwarding=l 表 5 KAME SNAP k ⅱのインストールドキュメントファイル ${TOPD 旧 }/kame/lNSTALL ${TOPD 旧 }/kame/freebsd4/INSTALL ${TOPD 旧 }/kame/openbsd/lNSTALL ${TO P D 旧 }/kame/netbsd/l NSTALL ${TOPD 旧 }/kame/bsdi3/lNSTALL ${TOPD 旧 }/kame/bsdi4/INSTALL 共通のインストールドキュメント。まず最初にこれを読むこと。 FreeBSD 4. x 用のドキュメント。 OpenBSD 用のドキュメント。 NetBSD 用のドキュメント。 BSD / 0S3.1 用のドキュメント。 BSD / 0S4.2 用のドキュメント。 2001 No. 8 BSD magazine 019

10. BSD magazine No.8 IPv6環境を構築しよう! ; RAIDを使おう

組織内ネットワークを あなたの組織のネットワークを IPv6 対応にしよう。本稿では、 IPv6 に対応 した組織内のネットワークを作る方法 を解説する。 まだ組織が外部のネットワークにつ ながっていない場合、 IPv6 アドレスを どうするか悩むことだろう。 IPv4 なら プライベートアドレスを使うところ、 IPv6 ならサイトローカルアドレスを使 えば良いだろうと考えがちだが、ちょ っと待ってほしい。 サイトローカルアドレスにはグロー バルアドレスと異なり、スコープの概 念がある。このため、グローバルアド レスの代用にはならないのである。せ ひともグローバルな IPv6 アドレスを取 得し、使用していただきたい。どうし 用する v6 アドレス マリスト 1 ルータとして設定時の / etc / ℃ . conf の例 ipv6—enab1e="YES" ipv6—network—interfaces="fxpO fxpl" ipv6—prefix—fxpO="3ffe : 505 : 2 : 1000 ” ipv6—prefix-fxp1="3ffe:505:2: 1001 " ipv6—gateway—enabIe=t'YES' ipv6—router—enabIe="YES" マリスト 2 トンネル接続時の / etc / ℃ . conf の例 (host-a) gifconfig-gifO="192.168.0.1 192.168.1.1 " gif—interfaces="gifO" ipv6—router—enabIe="YES" ipv6—gateway—enabIe="YES" ipv6-prefix-fxpO="3ffe : 505 : 2 : 1000 " ipv6—network—interfaces="fxp0" ipv6—enabIe="YES" ても無理なら 1Pv4 アドレスから導出さ れる 6t 。 4 アドレスを使用願いたい。 本稿では、グローバルアドレスを取 得済であると仮定する。 まだまだ IPv6 をしゃべることができ るルータは少ない。現状では、 IPv6 を しゃべることができないルータで構築 されたネットワークに無理やり IPv6 を 流すケースが多いと思う。 既存ネットワークを IPv6 対応にする 際、一番簡単なのは、ルータを 1Pv6 対 応した最近の * BSD 箱に置き換えるこ とだろう。 IPv6 と共に IPv4 のルータと しての設定をしておけば、どちらのル ータとしても使えるようになる。 しかし、既存ネットワークに手を加 えるのはなかなか難しいかもしれない。 次善策としては、既存ルータと並列に * BSD で構築した IPv6 ルータを入れる ことだろう ( 図 1 ) 。この場合、構築し たルータは IPv4 のルータとしては動か ないようにしておく。 たとえば FreeBSD をルータとして設 ネットワークの旧 v6 化 旧 v6 で作ろう 梅本Æ/Hajimu UMEMOTO ume@mahoroba.org 定するには、 /etc/rc. conf はリスト 1 のよ うになる。 この方法も、 IPv4 ネットワークに影響 を与えないものの、やはり物理的に既存 ネットワークに変更を加えることになる ので、選択できないかもしれない。 第 3 の方法は、 IPv6 over IPv4 トンネ ルを使う方法である ( 図 2 ) 。この場合、 既存ネットワークにはまったく変更を 加える必要がない。 トンネルを使用する場合 h 。 st - a の設 定はリスト 2 のようになる。また、 host - b の設定はリスト 3 のようになる。 やはり、ネイテイプに IPv6 を流した いところだが、もしあなたの組織が寛 容でない場合、あなたの組織で IPv6 が 市民権を得るまではこの方法でじっと 我慢しよう。 経路制御 OSPF6 を使用したい場合は、 zebra 注 1 複雑な設定が必要とか、 BGP4 + や 本的にこれで十分であろう。 る。 RIPng で経路制御を行うのなら基 * BSD には route6d が標準で入ってい マリスト 3 トンネル接続時の / etc / rc. conf の例 (host-b) ipv6—enab1e="YES" ipv6—network—interfaces="fxp0" ipv6-prefix-fxpO="3ffe : 505 : 2 : 1001 ” ipv6-gateway-enab1e="YES" ipv6—router—enab1e="YES" gif—interfaces="gif()" gifconfig ー gif0 = " 192.168.1.1 192.168.0. 掣 1 http ・ 26 ~ SD Ve 「 5i0 P ′ 0t0 ′ ra.org/ gazi 2001 No. 8