ワークステーションのおと一の 写真 2 R-IDE2-PCI 写真 3 R-IDE2-PCI 板 ~ 鳶 C 当 X 2C ー 09 一 2 = 2 わ第 使ったのは、アイ・オー・データ機器 4 の「 R-IDE2- PCI 」というハードウェア RAID カードです。これは、 アイ・オー・データ機器が、、 I-O PRO" というプランド名 でシステム販売会社などを通して販売している RAID 製 品シリーズの 1 つです。 R-IDE2-PCI ( 写真 2 ) は、 1 つの IDE インターフェ イスを 2 つの IDE インターフェイスに分岐し、それぞれ のインターフェイスのさきに接続された IDE ハードディ スクのあいだでミラーリングをおこないます。形状は PCI カードですが、 PCI スロットからは電源のイ合しか受け ていません。そのためドライバは不要で、 OS 側では何も する必要がありません。これを買ってきて接続しさえすれ は、ハードディスクがミラーリングできるというイ甦リなも のです。 このカードには、 PCI カード形のもののほかに、「 R- IDE2-LE 」という 3.5 インチベイに収納できるタイプも あります。 ポードを見る 写真 2 を見てください。 PCI カードのプラケットの左 から、システム情報出力用のシリアルポート、フサー停止 などの操作のための BUZZER ボタン、ハードディスク の状態を示す 2 組の LED 、 RAID コントローラへのア クセス状態を示す LED があります。 基板 ( 写真 3 ) を見てみましよう。 PCI のプラケットの そばには、 3 つのディッフスイッチがあり、その右横にフ ラッシュメモリがあります。 W29C04 という型番から調 べてみると、 Winbond の 4Mbit ( 512K x 8bit) の容量 のもののようです。おそらく、ファームウェアが入って いるのでしよう。フラッシュメモリの周りを見ると、 32 4 http://www.iodata.jp/ い叩川川旧Ⅷし皿川 個のスルーホールがあるのが分かります。最初の言 t では EEPROM を使う予定だったのかもしれません。 右下を見ると、 H8 / 3004 という型番の LSI がありま す。 Web で調べると、これは日立製作所の CPU で、 内部が 32bit 構成で 16bit 幅のレジスタを 16 本もつ H8 / 300H という CPU をコアに周辺機器を集積したも ののようです。その右上の大き目の LSI は、 XILINX の SPARTAN というシリーズの FPGA (Field Pro- grammable Gate Array) で、プログラム可能な LSI で す (LSI の乍を変更できることから、最匠はひろく使わ れています ) 。 FPGA の佑載の 40 ピンのコネクタはホス トとの IDE インターフェイス、上にある 2 つの 40 ピン のコネクタは HDD との IDE インターフェイスです。 ホスト、ハードディスクのインターフェイスとも Ultra ATA/IOO まで対応していて、最大データ転度はホス ト・ハードディスク間か最大 100MB / s 、ハードディス ク間が最大 66MB/s となっています。 接続 この R-IDE2-PCI を、 Sun の Ultra 5 に 2 台目の ハードディスクとして接続してみました ( 写真 4 ) 。ちょっ と見にくいかもしれませんが、写真の右側中央にある PCI のカードが R-IDE2-PCI です。接続は簡単で、ますホス ト側の IDE インターフェイスと R-IDE2-PCI を接続し ます。次に、もともと使っていたハードディスクをマス ターに設定し、 R-IDE2-PCI の 1 番目の HDD インター フェイスに接続します。これで電源を入れると、 R-IDE2- PCI はこのハードディスクを、、 Main ドライプ " と認識し 144 UNIX MAGAZINE 2003 ユ
Vintage JC S 丑 performance & 丑 Q “ 0 〃 IU - 省スペース & ハイパフォーマンスを実現高速性と信頼性を要求される 分野の基幹サーバーやバイオインフォマティックス、流体解析、 物質シュミレーション等のための並列・分散処理用のシステムに最適です ・ Dual Channel tJltra160 SCSI onboard ・ Windows 2 Ⅲ川 / XP 、 Red Hat Linux 7.3 、 FreeBSD 4.5 等に対応 <lntel@Xeon プロセッサ DuaI 対応 EInteI@ Xeon プロセッサ ( 2.80GHz Dual CPU 対応 ) •128MB—12GB DDR SDRAM ECC Registered ・ .4GB ~ 73.4GB x3 基 Ultra160 SCSI 10 , 似用 rpm HDD ・日 I)D べイ 3 基 wero Channel RAID 対応 ー ATI RAGE XL onboard Gigabit Ethernet x 2 onboard ーレ 0 ポート : シリアル x 1 、 USB x 3 、 EPCI-X 64bit/1()()MHz x 2 ( Full Size x 1 、 Low ProfiIe x 1 ) ¥ 308 , 000 より ねド Xeo がフロセッサ ーー、 D a 成対応ー ド Xeon 、プロセッサ 2 基搭載 Gigabit Etherrtet 2 ホート鞳載 E64bit PCI 拡張スロット 2 基搭截 , ド E7 川 Chipset ■ lntel@ E7500 Chipset IntelØ純正ケース & マザーポード搭載 く Type IUXDI> XEON 2U - <lntel@Xeon プロセッサ DuaI 対応 2U サーバー 2U XDI> , lnte ド \ に on 、プロセッサ 2 基搭載 Gigabit E 怖を r れⅵッポート搭載 64b ⅱ PCI 拡張スロット 6 基搭載 ネットスワップ対応日 DD べイ 7 基 te ド E7 測 0 Chipset 第置・第第鳶 日本コンヒ。ュ - ティングシステム (JCS) は、 灯産業を支える高速性と安定性を兼ね備えた基幹ハードウェア ( ラックマウントサーバ - システム、ティスクアレイシステムなと ) のサプライヤーとして、 ま T 分野のソリュ - ションプロバイダーとして常に最先端の技術力を培ってきました IU / 2U の省スへ - スサ - バーシステムの可能性にも、いち早く着目、 製品化して高い評価を獲得しています c 0 Ⅲ Server So ⅲ on く lntel ・ PentiumØ 4 プロセッサ搭載 & IU - ServerWorks GC-LE Chipset 搭載 IU ラックマウントサーバー Type IUXSL> •lntel@ Pentium@ 4 プロセッサ搭載 ( 2.60GHz , FSB400MHz) •ServerWorks GC-LE Chipset •128MB—3GB DDR SDRAM ・区 4GB ~ 73.4GB HDD 最大 3 基搭載可能 ・ ATI Rage XL onboard •Ultra320 SCSI コントローラ onboard •64bit PCI 2 スロット Gigabit Ethernet 2 ポート onboard ・ Windows 2 側 0 / XP 、 Linux 等に対応 ¥ 228 , 000 より <lntel ・ Pentium ・ 4 プロセッサ搭載 & ハードウェア RAID コントローラ ( RAID I) 標準装備 IU - IU ラックマウントサーパー IUXHI> •lntel@ Pentiurn@ 4 プロセッサ ( 2.80GHz , FSB533MHz) •lntel@ 845E Chipset •128MB—2GB DDR SI)RAM ・ 40GB ~ 120GB HDD HDD 2 基搭載 (RAII)I 構成標準 ) ・ RAIDI 対応ハードウェア RAID コントローラ •ATI Rage XL onboard •10/l()()Base-TX 2 ポート onboard •32bit PCI 1 スロット ■ Windows 2 ( レ XP 、 Linux 等に対応 ¥ 188 , 000 より ※ lntel@ Pentium@ 搭載モデルについては WEB ページで御確認くたさい。 •IntelØ Xeon プロセッサ ( 2.80GHz Dual CPU 対応 ) Gigabit Ethernet x 2 onboard ・ HDD べイ 7 基 ・に 8MB ~ 12GB DDR SDRAM ECC Registered •PCI ・ X (64bit /l()()MHz) x 6 ( Full Size x 3 , Low Profile x 3 ) ・ Windows 2 似用 / XP 、 Red Hat Linux 7.3 、 FreeBSD 4.5 等に対応 ¥ 328 , 000 より lntel' 純正ケース & マザーポード搭載 く Type 2UXDI> 0 0 IU <lntel@Xeon プロセッサ DuaI 対応 IU サーバー IU XDP/ XDE> 1ntel'E7500Chipset 赤ットスワップ対応 (I)I) べイ 3 基 a64bit PCI 拡張スロット 2 基搭截 Gigabit Ethernet 搭載 .3HDl) Bay 暑 ( 4 ノ FI)D ざ夜り InteP Pentium@4 プロセッサ搭載 ・ 64b ⅱ PCI 拡張スロット 2 基搭載 Gicabit E ⅲにⅶ、 2 ポート搭載 lntel@ Xeon ープロセッサ ( 2.80GHz Dual CPU 対応 ) 128MB—16GB DDR SDRAM ■ lntel E750()Chipset 9.2GB ~ 73.4GB x3 基 SCSI l(),(Mrpm HDD Windows NT / 20 、 Linux 、 Solaris 、 FreeBSD 対応 ¥ 338 , 000 より ※ IDE モデル (Type XDE) は 別途お問い合わせくたさい。 IU <Type IUXDP> <Type IUXSL> く lntel ・ Pentium@ 4 プロセッサ搭載 & ハードウェア RAID コントローラ (RAID 5 ) 標準装備 IU ラックマウントサーパー IUXRI> OS 非依存ハードウェア RA ー D 5 コントローラ - lntel ・ Pen 朝 um ・ 4 プロセッサ搭載 ⅳド 845E Chi pset OS に依存しない RA Ⅱ月コントローラ lntelt Pentium'4 プロセッサ搭載 ⅳド 845E Chipset 冷却性能に優れたアルミケース採用 •lntel@ Pentium@ 4 プロセッサ ( 2.80GHz , FSB533MHz) ・ te ド 845E Chipset ■ 128MB—2GB DDR SDRAM ■ 4 ( B ~ 120GB HDD 3 基搭載 ( RA Ⅲ 5 構成標準 ) ・ RAID5 対応ハードウェア RAID コントローラ ■ ATI Rage XL onboard ■ IO/ 100Base-TX 2 ポート onboard •.32bit PCI 1 スロット EWindows 20 ( 用 / XP 、 Linux 等に対応 ¥ 248 , 000 より TEL.03 ( 3821 ) 3200 FAX. 03 ( 3821 ) 3241 30S 株式会社日本コンピューティングシステム lntep 純正マザーポード搭載 <Type XHI> lntel' 純正マザーポード搭載 <Type IUXRI>
ワークステーションのおと 図 1 format コマンドでディスクを確認 # format 14 : 50 : 52 takasago dada: WARNING: /pci@lf .O/pci@1, 1 / Searching for disks ... NOV 17 ide@3/dad@2.O (dadl) : Nov 17 14 : 50 : 52 takasago label checksum failed corrupt 1abe1 WARNING: /pci@1f.0/pci@1 , 1/ide@3/dad@2.0 (dadl) : Nov 17 14 : 50 : 52 takasago dada: Nov 17 14 : 50 : 52 takasago 1abe1 checksum failed corrupt 1abe1 done AVAILABLE DISK SELECTIONS : 0 . c0t0dO く IC35L040AVVA07 ー 0 cyl 19708 alt 2 hd 16 sec 255 > /pci@lf .O/pci@1 , 1/ide@3/dad@0.0 1 . cOt2dO く IODATA DELTA2 RAID HDD cyl 19708 alt 2 hd 16 sec 255 > /pci@lf .O/pci@1 , 1/ide@3/dad@2.O Specify disk (enter its number) : 1 selecting cOt2dO [disk formatted, Ⅱ 0 defect list found] F 0 RMAT MENU : format> Specify disk (enter its number) : 写真 4 Ultra 5 に宀した R-IDE2-PCI た IBM の Deskstar 120GXP (40GB モデル、型番は IC35L040AVVA07 ー 0 ) では約 50 分かかりました。 Re- build の実行中は、 HDDI の彖の LED と HDD2 の赤 の LED が点滅します。これは、 HDDI から HDD2 へ コピーがおこなわれていることを示しています。 Rebuild か終ると、 HDDI と HDD2 の緑の LED が点灯します。 しかし、使えない・・・・・・ さて、この大態で SoIaris を起動し、 format コマンド でディスクを石忍してみました ( 図 1 ) 。 、、 AVAILABLE DISK SELECTIONS:" のところを見 ると、 Solaris を起動したディスク (IC35L040AVVA07- ます。この状態でプラケットにある HDDI ク求の LED 0 ) と R-IDE2-PCI (IODATA DELTA2 RAID HDD) が点灯、 HDD2 の赤の LED が点灯します。いったん電 か流忍識されているのが分かります。 R-IDE2-PCI にも同 源を切り、 2 台目のハードディスクを 2 番目の HDD イ じ Deskstar 120GXP (40GB モデル ) を接続している ンターフェイスに接続して電源を入れると、このディス ので、ラベルは違いますがシリンダ数などは同しになって クが、、 Mirror ドライプ " になります。これを逆にすると、 います。 2 番目の HDD インターフェイスに接続された HDD が Main ドライプ、 1 番目の HDD インターフェイスに接続 corrupt label" と表小されているので、ノヾーティショ された HDD が Mirror ドライプです。 ン情報などが正しく設定されていないようです。そこで、 parition コマンドの print サプコマンドを使い、ノヾーティ この状態で、 Main ドライプと Mirror ドライプの内 ション情報を見てみました ( 図 2 ) 。 容を同期させるための、、 Rebuild " が実行されます。 Re- ディスク全体にひろがるパーティションが 1 つあるだ build は、 HDD の容量などにもよりますが、私が使っ 0 145 UNIX MAGAZINE 2003.1
ワークステーションのおと 図 2 パーティション情報認 partition> print Current partition table (original) : Tota1 disk cylinders available: 19708 + 2 (reserved cylinders) CyIinders 0 0 0 0 0 0 0 0 F1ag Tag 0 unasslgned 1 unassigned 2 backup Wt1 3 unassigned 4 unaSSIgned WIII 5 unassigned 6 unas S i gned WIII 7 unas S i P art B10cks ( 0 / 0 / の 0 ( 0 / 0 / 0 ) 0 ( 19708 / 0 / 0 ) 80408640 ( 0 / 0 / 0 ) 0 ( 0 / 0 / 0 ) 0 ( 0 / 0 / 0 ) 0 ( 0 / 0 / 0 ) 0 ( 0 / 0 / 0 ) 0 0 0 38.34GB 0 0 0 0 0 19707 partition> 図 3 パーティションを書き込んでみる partition> 1abe1 Ready to label disk, continue? y /pci@lf .0/pci@1 , 1/ide@3/dad@2.O (dadl) : Nov 17 15 : 13 : 47 takasago dada: WARNING: Nov 17 15 : 13 : 47 takasago label label checksum failed c orrupt Warning : Ⅱ 0 backup labels partition> 図 4 newfs でファイルシステムを作ろうとしたカ # newfs /dev/rdsk/cOt2d0s2 Nov 17 15 : 15 : 42 takasago dada: WARNING: /pci@lf .0/pci@1 , 1/ide@3/dad@2.O (dadl) : Nov 17 15 : 15 : 42 takasago corrupt label 1abe1 checksum failed /dev/rdsk/cOt2dOs2 : 工 / 0 error 写真 5 Sun Blade 150 では仕切りが呀に ルシステムを作ろうとしても、うまくいきません ( 図 4 ) 。 うーん、、、もうちょっとやのに " という感しです。 R-IDE2-PCI を使う場合には、 IDE ケープルの扱いに も注意が必要です。 UItra 5 にはケース内部の仕切りがあ まりなく、ケープルの取回しも楽でした。ところが、 Sun Blade 150 ではうまくいきません。写真 5 を見れば分かる ように、 R-IDE2-PCI を挿す PCI スロットと HDD の べイのあいだに仕切りがあり、 IDE ケープルを通すこと ができないのです。この仕切りがあるために、必要なケー プルカ張くなり、 IDE の規格を超えてしまいそうです。 ( さかした・しゅう AXE) けです。とりあえす、 label サプコマンドでこのパーティ ションを書き込んでみます ( 図 3 ) 。 しかし、、、 corrupt label ー label checksum failed' と なり、書き込めません。 newfs でこのディスクにファイ 146 UNIX MAGAZINE 2003.1
e WS ・ 1 / 2003 •HP PA ー 8700 十使用のハイエンド WS 日本ヒューレット・パッカード (TeI CPU 数は 1 、主記憶 (120MHz SD- 0120 ー 352239 ) は、ハイエンド UNIX WS RAM) は最大 8GB 、内蔵 HD は最大 「 hp workstation C3750 」「同 j6750 」の 146GB 。拡張スロットは、 PCI—IX ><2 、 hp workstation C3750 販売を開始した。 PCI—2XX3 、 PCI—4XX10 グラフィッ CPU はいすれも PA ー 8700 十 ( 875MHz ) クスは、 hp fxe 、同 fx5—pro 、同 fx10— 10Base T/100Base (X) から。 で、 1 次キャッシュ ( 命令 / データ ) は 0.75 pro 、同 FireGL—UX から選択。筺体は ◆ hp workstation j6750 MB/I. 5MBO OS は hp—ux 11.0 (July デスクサイド型 CPU 数は 2 、主記憶 (120MHz SD 2001 ) / 11i (TCOE/MTOE)0 価格は 333 万円 ( 主記憶 512MB 、 HD RAM) は最大 16GB 、内蔵 HD は最大 ◆ hp workstation C3750 146GB 、拡張スロットは PCI—4XX30 36GB 、 hp fxe 、 DVD ドライプ、 FDD 、 グラフィックスは hp fxe 、同ⅸ 10 ー pro 、 ◆ hp workstation C3750 / j6750 のおもな仕様 同 FireGL-UX から選択。筐体は、 19 j6750 inch ラックへの収納も可能 ( 高さ 2U)0 価格は 559 万 7 , 000 円 ( 主記憶 2GB 、 HD 36GB 、 hp fxe 、 DVD ドライプ、 10 Base T/100Base TX)O なお、日本ヒューレット・パッカードは 11 月 1 日付で旧コンノヾックコンピュータ と合併した。合併比率は、コンパックコン ヒュータの株式 1 株に対し、日本ヒュー ト・パッカードの株式 0.81 株。 C3750 CPU ( クロック ) キャッシュ ( 命令 / データ ) CPU 数 主記憶 HD PCI スロット数 グラフィックス 外形寸法 (HxWxD) 重量 ( 最小 / 最大 ) * デスクサイド型 PA -8700 十 (875MHz) 0.75MB / 1.5MB 2 最大 16GB PCI-4Xx3 hp fxe 、 hp fxl()-pro 、 hp FireGL-UX 49.5X13.7X65.5cm 本 18.2kg / 21.8kg 1 最大 8GB 最大 146GB PCI-1Xx2 、 PCI-2Xx3 PCI-4Xx 1 hp fxe 、 hp ⅸ 5- pro 、 hp fx10-pro 、 hp FireGL-UX 44.5X22.9X49.5cm 20.9kg / 25.4kg ■旧 M 1.45GHz POWER4 十使用の pSeries 日本アイ・ヒ、一・エムは、 ッドレン ChipkiII) は 2 ~ 64GB 。 8way 時の総メモ ジ UNIX サーバー「 IBM e server p リ帯域幅は 25.6GB / s 、総 I/O 帯域幅は Series 650 」、クラスタサーバー「同 p 10GB/so OS が AIX 5L V5.2 の場合は、 Series 655 」の販売を開始した。 ダイナミック LPAR ( システムを最大 8 e server pSeries 650 e server pSeries 650 個のパーティションに重加勺に分割 ) 、 CPU CPU は、銅配線、 SOI で製造プロセ CPU/ メモリ /PCI-X スロットを収納 の CUoD (Capacity Upgrade on De- ス 0.13 ″ m 、 1 億 8 , 400 万トランジスタの する CEC ドロワーの外形寸去 ( HxWx mand) に対応。障害発生時の動的縮退機 POWER4 十 (1.45GHz または 1.2GHz) 能、エラー発生時に再発防止対策を施す D) は 35.1 (8U) X 44.5X 76cmo を 2 / 4 / 6 / 8way で構成。 1 次キャッシュ 価格は 484 万 800 円 ( 最小構成 ) から。 FFDC (First Failure Data Capture) な ( 命令 / データ ) は 64KB/32KB ( 1 プロ どを備える。 HD はホットスワップ可能 ◆ e server pSeries 655 セッサあたり ) 、 2 次キャッシュは 1.5MB 、 科学技術計算用のクラスタサー で、電源、冷却ファンは冗長構成。拡張ス 3 次キャッシュ ( 1.45GHz / 1.2GHz ) は ロットは PCI-X x 7 で、 I/O ドロワー使 CPU は、製造プロセス 0.18 ″ m 、 1 億 32MB/8MB ( 2 個の CPU で共有する 7 , 400 万トランジスタの POWER4 ( 1.3 用時は最大 55 スロット。 SMP—on—a—chip 設計 ) 。主記憶 (ECC GHz または 1. IGHz)0 1 ノードあたりの 対応 OS は AIX 5L V5.1 / 5.2 。 UNIX MAGAZINE 2003 ユ ◆ 25
連載 / 凵 nux のフートプロセスをみる一② 図 2 /proc/ioports と /proc/iomem 列 # cat /proc/ioports 0000 ー 001f 0020 ー 003f 0040 ー 005f 0060 ー 006f 0070 ー 007f 0080 ー 008f 00a0 ー 00bf 00C0 ー 00df 00f0 ー 00ff 0100 ー 013f 0140 ー 0147 014e ー 014e 01f0 ー 01f7 03C0 ー 03df 03f6 ー 03f6 Obff0000—0bfffbff Obfffc00—0bffffff 10000000 ー 103fffff 10400000 ー 107fffff 10800000 ー 10bfffff 10C00000 ー 10ffffff fffea000—ffffffff BIOS—e820: B 工 OS ー e820 : BIOS—e820: BIOS—e820 : BIOS-e820: B 工 OS ー e820 : B 工 OS ー e820 : dma 1 picl timer keyboard rtc dma page reg ideO vga 十 ideO idel idel orlnoco_cs f pu dma2 pic2 図 3 カーネルが表示する E820H から得たメモリマップ # cat /proc/iomem 00000000 ー 0009fbff 0009fC00 ー 0009ffff 000a0000 ー 000bffff 000C0000 ー 000c7fff 000f0000 ー 000fffff 00100000 ー Obfeffff System RAM reserved Video RAM area Video ROM System ROM System RAM 00100000 ー 001fe1C5 : Kerne1 code 001fe1C6 ー 0024795f Kerne1 data ACPI Tab1es ACPI Non—v01ati1e Storage PCI CardBus # 03 PCI CardBus # 03 PCI CardBus # 06 PCI CardBus # 06 reserved BIOS -provided physical RAM map : 0000000000000000 ー 000000000009fC00 00000000000ea000 0000000000100000 000000000bff0000 000000000bfffC00 00000000fffea000 000000000009fC00 00000000000a0000 0000000000100000 000000000bff0000 000000000bfffC00 000000000C000000 0000000100000000 ・ initARQ() ・ time-init() ・ mem-init() ・・・ PIC ( 8259 ) の初期化 ・・システム時間の匆琪月化 ・・ページデスクリプタの初期化 2002 年 8 月号で書いた予告には setup-arch() は含 まれていませんでしたが、単純に、、抜けていた " だけです。 すみません。 struct resource ホストのリソースを管理するのは OS の仕事の 1 っ です。リソースには物理的な外部テパイスなどもあります が、、、アドレス空間 " も重要です。 resource 構造体は、 I/O ポートとメインメモリのアド レス空間を管理するためのデータ構造です。 resource 構 造体でメインメモリのアドレス空間を管理するのは、 I/O テパイスかイ吏用するアドレス空間を予約 / 確保するためで す。プロセスにメモリを割り当てるための、いわゆるメモ リアロケータではありません。 この構造体は、ファイル linux/ioport. h で以下のよう に定義されています。 UNIX MAGAZINE 2003.1 (usable) (reserved) (ACPI NVS) (ACPI data) (usable) (reserved) (reserved) 169 resource 構造体のメンバーには、それぞれ以ー - ドのよう resource 構造体のデータが作られているのです。 れもそのはす、 E820H のデータから iomem を管理する スの範囲と属性がよく似ていることカ吩かるでしよう。そ 図 2 の iomem の結果と図 3 を見くらべると、アドレ 機カワートするときに表示されたメッセージです。 月号を参照してください ) 。図 3 の例は、同じく私の計算 図 3 のように表示します ( E820H については 2002 年 9 Linux カーネルは、プート時にメモリマップの内容を を参照した例を示します。 す。図 2 に、和使用している計算機でこれらのファイル モリはファイル /proc/iomem で参照することができま のアドレス空間はファイル /proc/ioports で、メインメ いるアドレス空間の現状をみてみましよう。 I/O ポート resource 構造体力壻理して コードの解説に入る前に struct resource *parent, *sibling, *child; unsigned long flags ; unsigned 10 Ⅱ g start , end; const Char *name ; struct resource {
図 12 13 77 1384 1385 1386 1387 1388 1389 1370 連載 / IPv6 の実装ーの if (ip6) { tcp6-ctlinput() でのエラー通知タ里 if (m—>m_pkthdr . le Ⅱく Off + sizeof (th) ) { (struct sockaddr—in6 *)sa, 0 ) ; icmp6—mtudisc—update ( (struct ip6ct1param * ) d , if (cmd PRC_MSGSIZE) sa6_src return ; ip6cp—>ip6c—src; 1404 valid + + ; 1371 } else { date() を呼び出して MTU を更新します。 icmp6-n ・ ltu- の通信中の PCB に景グするため、 icmp6-mtudisc-up- し、 MTU の調整を意味する通知番号の場合にはすべて を特定することができないので処理を中断します。ただ hdr. len に TCP ヘッタ、領域が含まれていない場合、 PCB ダに含まれています。 IP バケットの全長である m-pkt- ンスポート層のホート番号が必要で、これは TCP のヘッ 見しなけれはなりません。 PCB を特定するためにはトラ 送信者に通知するには、送信者が使用している PCB を発 TCP ヘッダを表す tcp6hdr 構造体の変数です。ェラーを す図 12 の 1 , 384 行目でバケット長を確認します。 th は 工ラーの原因となった IP バケットか渡されると、ま でのオフセット、 IP'S ケットの始点アドレスです。 アドレス、 IP バケットのツ頁から TCP ヘッダの先頭ま インタ、 IP バケットか格納されているメモリ領域のう頁 れぞれ、エラーの原因となった IP バケットへの mbuf ホ 'l 帯長を変数に取り出します。 m 、 ip6 、。広 sa6-src はそ ip6ctlparam 十冓造イ本に設疋されていた IP ノ、ケットの 1391 bzero(&th, sizeof (th) ) ; disc-update() については彳あします。 部分を th にコピーします。 1 , 391 ~ 1 , 392 行目で、 IP ノ、ケットから TCP ヘッダ (caddr—t)&th) ; 1392 m—copydata(), 0ff , sizeof (th) , th. th—sport , 0 ) ) (struct sockaddr—in6 *)sa6—src, th. th—dport , (in6—pcb100kup—connect(&tcb6, sa6, 1 , 394 ~ 1 , 421 行目は MTU 値の調整のための処理で ( cmd PRC_MSGSIZE) { 1394 if in6-pcblookup-connect() は PCB のリストから、始 点 / 終点アドレス、始点 / 終点ポートのすべての情報が設 定された PCB を検索します。この 4 つか設定されてい れは、その PCB は別の PCB と通信中であることを意味 します。 tcb6 は PCB のリストのツ頁です。 PCB は 2 種 類のリストて管理されています。 1 つはすべての PCB の リストで、 in6pcb をリストのう負としてカーネル内のす べての PCB がリンクされています。もう 1 つはプロトコ ルごとのリストで、 tcb6 には TCP を利用している PCB のみがリストされています。フロトコルごとのリストを作 ることで、 PCB の検索間カ鉄宿できます。 1 : 402 行目 では、 ICMP 工ラーの原因となった IP バケットから取 得した始点 / 終点ホートの情報を用いて、該当する PCB を検索しています。通信中の PCB があ川ま valid の値が 1 になります。 PCB に関するこの情報は、次に実行する icmp6-mtudisc-update() て利用されます。 図 13 の 1 , 413 行目で icmp6-mtudisc-update() を 呼び出し、 MTU 値を調整します。 1423 nmatch = in6—pcbnotify(&tcb6 , sa, 1424 th. th-dport , (struct sockaddr * ) sa6—src , th. th—sport , cmd, NULL, notify) ; す。 14 ( ) 2 1403 if UNIX MAGAZINE 2003.1 最後に、各 PCB にエラーを通知します。 in6-pcbno- tify() は引数で度された情報から PCB を特定し、エラー を通知する関数です。第 6 引数の cmd に通知番号を、第 8 引数の notify に通知番号に対応した処理関数を渡しま す。なお、第 7 引数で通知番号ごとの付加的な引数を指定 できますが、 tcp6-ctlinput() では使用しません。 1 , 425 ~ 1 , 430 行目 ( 図 14 ) は、 TCP の SYN ノ、ケッ トのネガテイプ・キャッシュの一求です。終点アドレス に到達できなかった場合 ( 1 , 426 ~ 1 , 428 行目 ) 、 1 , 429 ~ 65
連載 / Linux のプートプロセスをみる ー② 図 4 iomem リソースを褌里する告 i'PCl memi child "System RAM " sibling な未があります。 nreservedl sibling "System RAM' sibling child Kernel code sibling "ACPI Tables'I sibling 'Kernel data'i Ⅱ a111e st art end flags parent sibling child アドレス範用に付ける名前 開始アドレス 終了アドレス 状態を表すフラグ 親へのポインタ 兄弟へのポインタ 子へのポインタ I/O ポートとメインメモリのアドレス空間の用途は、包 ところで、 Kernel code の親が System RAM であ 表すことができます。 Kernel data が兄弟です。以の関係は、図 4 のように の関係にあります。同しく図 2 の例では、 KerneI code と 1 つの、、親 " に含まれる複数の、、子 " どうしは、、兄弟 " 同様です。 子関係にあることが示されています。、、 Kernel data" も ます。ここに、 System RAM" と、、 Kernel code" か親 具イ列は、図 2 の iomem の表示結果に見ることができ する冓造を構成します。 囲に対して、含むはうを、、親 " 、含まれるほうを、、子 " と source 構造体は、このような包含関係のあるアドレス範 のように範囲を狭めることで詳細な属性を表せます。 re- →、プログラムが使用するアドレス " →、、テキスト領域 " 域にプログラムをロードしたとすると、、、アドレス全体 " 含関係によって表すことができます。たとえは、 RAM 領 170 るのはいいとして、 System RAM の親はどこにいるので しよう。図 2 にはそれらしいエントリは表示されていませ ん。もしかすると、親が失踪して System RAM は孤児 になってしまったのでしようか。 じつは、図 2 には表示されていないだけで、親のエン トリは kernel/resource. c に以下のように定義されてい ます。 ・ I/O アドレス空間のルート struct resource ioport_resource {"PCI IO" 0X0000 , IO_SPACE_LIMIT , IORESOURCE_ 工 0} ; ・メインメモリ・アドレス空間のルート struct resource lomem_resource {"PCI mem" , 0X00000000 , Oxffffffff , I ORES OURCE_MEM} ; それぞれのエントリは、 I/O ポートのアドレス空間全 体、メインメモリのアドレス空間全体を表しています。よ って、これ以上の、、親 " はいません。この 2 つカ材冓造の ルートとなります。つまり、カーネルのなかには I / O ポ ートのアドレス空間を管理するための料冓造と、メインメ モリのアドレス空間を管理するための冓造の 2 つか独立 して存在します。 これらのオ冓造は、 kernel/resource. c に定義されてい る以下の関数を使って操作します。 ・ get-resource-list() ・ request —resource ・ _resource UNIX MAGAZINE 2003.1
図 15 1477 1478 1479 1480 1482 1500 1501 図 16 1511 1512 1513 1515 図 17 1646 1647 1648 1649 1650 1651 1652 連載 / IPv6 の実装ーの M T U 値の更新 MTU の更新タ里 (tcp-subr. c) (*mc—>mc—func) (&dst—>sin6—addr) ; mc = LIST_NEXT(mc, mc-list) ) for ()c = LIST—FIRST(&icmp6_mtudisc-ca11backs) ; プロトコルごとの MTU 関数の呼出し rt—>rt_rmx . rmx_mtu = ; if (mtu く IN6_LINKMTU(rt->rt_ifp)) { (rt—>rt—rmx. rmx_mtu > mtu Ⅱ rt—>rt_rmx. rmx_mtu ! (rt—>rt—rmx. rmx_locks & RTV_MTU) & & if ()t & & (rt->rt_flags & RTF_HOST) & & * f addr ; sin6. sin6_addr sin6. sin6—1en = sizeof (struct sockaddr_in6) ; sin6. sin6—famiIy = AF—INET6; bzero(&sin6, sizeof (sin6)) ; mc ! = (void) in6—pcbnotify(&tcb6, (struct sockaddr *)&sin6, NULL ; 0 , (struct sockaddr *)&sa6—any, 0 , PRC—MSGSIZE, NULL, tcp6_mtudisc) ; 供しているのは TCP のみです。 UDP にはフロトコルレ ベルでバケットサイズを調整するオ冓がないため、 MTU の更新を UDP スタックが処理する必要はありません。 れに対し、 TCP は MSS (Max Segment Size: 最大セグ メントサイズ ) を TCP スタックで管理する必要があるた め、 MTU の変化に MSS を j 直させる必要があります。 tcp-subr. c 1640 void 1641 tcp6—mtudisc—ca11back(faddr) 1654 1655 1656 1657 1658 VOid tcp6—mtudisc ( in6p , errno) struct in6pcb *in6p; 1642 1643 { struct in6_addr *faddr ; tcp6-mtudisc-callback() の引数は、 MTU の更新の 対象となる終点ノードのアドレスです。 実際の処理は tcp6-mtudisc() が受け持ちます。 tcp6- mtudisc-callback() では、 in6-pcbnotify() を呼び出す だけです ( 図 17 ) 。 in6-pcbnotify() を呼び出す際に始点 / 終点アドレス、始点 / 終点ポートを指定しますが、 MTU 値を更新する場合は同し終点アドレスを利用しているすべ ての PCB カ係するため、終点アドレス以外はワイルド カードを指定します。 tcp-subr. c UNIX MAGAZINE 2003.1 tcp6-mtudisc() は in6-pcbnotify() 経山で呼び出さ れます。第 1 引数に MTU の更新を通知したい PCB へ のポインタが、第 2 引数に通知番号をシステムコールの工 ラー番号に変換した値が入ります。 in6-pcbnotify() 経山 で呼び出される関数の型の制限により、 tcp6-mtudisc() の第 2 引数にはエラー番号か渡されますが、これは使用さ 1660 struct 1659 struct tcp-subr. c れません。 IP の PCB に加えて、各フロトコルは自分自身のフロ in6—pcbrtentry(in6p) ; rtentry *rt tcpcb *tp in6t0tcpcb (in6p) ; 得します。 in6-pcbrtentry() は、 PCB がキャッシュし を表します。 in6totcpcb() で PCB から TCPCB を取 造体は TCP の PCB (TCPCB : TCP Control BIock) トコルを管理するための PCB をもっています。 tcpcb 構 67
NEWS プロセッサ数 (1.3GHz/1.1GHz) は 4 / 8 X 3 スロット。 1 ノードのサイズはラック al ParaIIeI File System) V2.1 で、並列 で、 1 ラック ( 42U ) あたり 64 / 128CPU の の 4U ( ハーフサイズ ) で、ラックに I / O アプリケーション実行環境 Parallel En- 密度サー ドロワーを追加して HD (Ultra3 SCSI) 、 ーを構成可能。 2 次キャッ vironment V3.2 、負荷最適化ソフトウェ ノヾ PCI-X スロットを増設できる。 シュ (1.3GHz/I.1GHz) は 1.44MB ( 1 プ ア LoadLeveler V3.1 などを提供。 ロセッサあたり ) / 1.44MB ( 2 プロセッサ OS は AIX 5L V5.1 、 PSSP (Paral- 価格は 3 , 401 万 100 円 ( 最′」寸冓成 ) から。 で共有 ) 。 1 ノードあたりの主記憶は 4 ~ lel System Support Programs) V3.4 / http:/ / www.ibm.com/jp/servers/ 32GB 、 HD は 36.4 ~ 293.6GB 、 PCI—X 3.5 。ファイルシステムは GPFS (Gener- eserver/pseri es/ ・ SGI プレード型の NUMA サー 0 ト 0 を 0 日本 SGI (Tel 0120 ー 161086 ) は、プ は最大 256GB で、システムで最大 ITB レード型サー 「 SGI Origin 3900 」の のメモリを共有できる。 OS は IRIX 6.5 。 ノ、 販売を開始した。 価格は 6 , 543 万 7 , 000 円 (16CPU 、主記 NUMAflex 共有メモリ・アーキテク 憶 16GB 、 l—brick (I/O モジュール ) ) か チャの科学技術演算サー 。プレード 科学研究所 ( 東京都港区 ) のヒトゲノム解 ら。年間販売目標は 100 システム。同等 サーバーを使用し、 19inch ラックの高さ の構成にグラフィックス・モジュールを加 析センター。システム構成は 512CPU 、主 4U サイズのモジュールに最大 16CPU を えた「 SGIOnyx3900 ヒ、ジュアライゼー 記慮 512GB で、ストレージ・システムは 収納できる。システムの最大 CPU 数は ション・システム」も販売する。 SGI Total Performance 9400 (5TB)0 512 。 1 ラック (128CPU) あたりのメモリ この製品の最初の納入先は、東京大学医 ・ SGI OS は IRIX 6.5 。 価格は、 InfiniteReaIity3 使 . 用モデルが 1 , 200 万円から、同 4 使用モデルが 1 , 400 万円から。販売は 2002 年 12 月末まで。 主記憶は 512MB 、 HD は 73GB0 CD— 日本 SGI (Tel 0120 ー 161086 ) は、グラ 同時に、 Onyx 20 を使用した大規模可視 「 SGI Onyx 20 」 ROM ドライプ、 24inch ディスプレイ付 フィックス・サー イヒシステム SGI ReaIity Center のパッ の販売を開始した。 き。グラフィックス・エンジンは ln ⅱ nite ケージ製品「 SGI Viz Theater Lite 」 ( 2 , 米 SGI の創立 20 周年と日本 SGI の創 Reality3 ( テクスチャメモリ 256MB ) ま 980 万円から ) を販売する。 Onyx 製品の 立 15 周年を記念した日本市場限定のモデ たは同 4 ( IGB ) で、いすれもグラフィック 既存ューザーを対象に、 CPU 、ラスタ・ ス出力は 2 チャネル、 1 パイプ、 1 ラスタ・ ル。 CPU は R14000 (500MHz) x 2 で、 マネージャーのアップグレード・キャン 2 次キャッシュは ICPU あたり 8MB0 マネージャー。筐体はデスクサイド型。 ペーンも実施。 日本市場限定の Onyx •Sun グリッド・コンビューティング管理ソフトウェア サン・マイクロシステムズ (Tel 03 ー 仕組み。グリッド・コンピューティングで 5717 ー 5033 ) は、グリッド・コンヒューティ 資源分散、スケジューリング ( ジョブの配 列、並列竟管理など ) をおこなう「 Sun ング環境構築 / 運用ソフトウェア、、 Sun ONE Grid Engine 5.3 」と、これにポ ONE Grid Engine" の提供を開始した。 リシーベースの資源割当て機能を追加し グリッド・コンヒューティングは、ネッ ランスを確保できるシャドウ・マスターホ トワークに接続された複数の異種コンピ た「同 Grid Engine Enterprise Edition スト機能、アプリケーション・レベルでの ュータの資源 ( CPU 、メモリ ) を使用して、 5.3 」がある。 OpenSSL によるセキュリ チェックポイント機能などをもつ。 科学技術演算などの分散実行をおこなう テ料描像障害発生時にフォールト・トレ 対応 OS は、 SoIaris 2.6 / 7 / 8 / 9 26 UNIX MAGAZINE 2003.1