OpenSolarisにDiskを増設して...

そこの奥さん、取れたての新鮮野菜が入ったよー。

と、うちの奥さんに報告したんであります。ええ、散歩の途中にある無人野菜売り場が 昨日は空っぽになっていたのに、今朝通りかかったら、どっさりといろいろな物が 置いてあったのです。

どんな野菜かと言うと、白菜、大根、株、それとねぎ。いずれも、今畑から引き抜いて きましたとばかりの湿った土付き。正に新鮮そのもの。

注文を聞いたら、白菜一玉とねぎをご要望。250円也を握り締めて、ちゃりを飛ばした のであります。今日の夕食は、白菜のクリーム煮かな。それtも、鰹節のかかったお浸し かな? ねぎは、昼食のうどんにでも入って、出てくるかな?

スーパーあたりで売っている野菜は、綺麗に洗ってあって、存在感が乏しいけど、土が 付いたやつは、今まで畑で生きてましたって言う生命感が感じられる。この時期の冬野菜 って、旨いんだよなぁ。

昔、田舎でじっちゃんと、畑に保管してた野菜を取りに行ったなあ。雪を退けて、土から 掘り起こして持ってくるんだけど、土の中は以外に暖かいようで、野菜が凍っている 事なんて無かったものなあ。昔の人の知恵なんですかね。

最近は新鮮野菜を求めて、道の駅に併設されてる野菜直売所が、大賑わいとか。 野菜直売所のいいけど、魚直売所もないかねぇ? 築地からの出もどりじゃ鮮度落ちちゃうよ。

昔、仙台に住んでいたんだけど、お隣に漁師さんの娘さん夫婦がいて、懇意にさせて もらったおかげで、新鮮な魚にも目がないんだよね。毎日曜日の朝、近くの漁港で開かれる 市によく通ったものだ。生きてる魚は、最初女房は怖がっていたけど、そのうち、旨さに つられて、捌くのも平気になっちゃったよ。

どこか、魚や野菜と酒が旨い所へ移住したいものである。

Solaris機にDiskを増設するぞ

ZFSやってみんべぇで、前回は終わった。あれから、 こんな所 を見てたりする訳であるが、どうもDiskを新調した方がよさそうだ。

Diskって何処から買ってきたらいいんしょ? サクラ屋のポイントカードが余っていたら 早めに使い切っちゃいましょう。それとJALの参るもね。 でも、私んとこでは、VMWAREに一働きしてもらえば、OK牧場よ。

まず、Player3で、新規マシンを創造する。マシンの名前は、mypcぐらいでいいだろう。 慎ましく、6G HDDのマシンとしたよ。一応、用途はFreeBSDとしといた。6Gの単一HDDは なくて、分割バージョンとしといたよ。そうしておけば、後で移動が簡単になる。 だって、アプリによっては、2G以上のファイルを扱えないものもあるから。

創造したばかりのmypcは、こんな具合だ。

c:\Users\sakae\Documents\Virtual Machines\mypc>ls -l
-rw-   327680 2010-01-24 14:40 mypc-s001.vmdk
-rw-   327680 2010-01-24 14:40 mypc-s002.vmdk
-rw-   327680 2010-01-24 14:40 mypc-s003.vmdk
-rw-    65536 2010-01-24 14:40 mypc-s004.vmdk
-rw-      583 2010-01-24 14:40 mypc.vmdk
-rw-        0 2010-01-24 14:40 mypc.vmsd
-rw-     1315 2010-01-24 14:40 mypc.vmx
-rw-      259 2010-01-24 14:40 mypc.vmxf
c:\Users\sakae\Documents\Virtual Machines\mypc>

このうち、*.vmdkと名前が付いているファイル5個を、mypcからぶっこぬいて、Sokaris機へ 持って行く。mvしちゃうと、mypcから消えちゃうから、cpするのが吉。

2GのHDDなら、3本で6Gになるはずだが、mypc.vmdkを見ると、4本目は予備と書いてある。 どうやら、仮想PC自体が、Hardware RAID 0 をサポートしてるようだ。Diskを3本買うと 1本おまけしてくれるって、良心的だなあ。願わくば、製造ロットがばらばらだと良いんだ けど、それは確認出来なかった。(RAIDを組む時、同一ロットだと、同時に壊れてしまい、 非常に悲惨な事になるからです。必ず、別ロットで組みましょう。経験者が弾言しましたよ)

後は、Sokaris機側で、HDDを組み込んでやる。 私のSolaris機は、名前が "Solaris 10" となっているので、"Solaris 10.vmx" を Editorで開いて、下記2行を追加する。これは、IDEのフラットケーブルをDISK に接続する作業に相当します。

ide1:1.present = "TRUE"
ide1:1.fileName = "mypc.vmdk"

インターフェース的には、セカンダリーのスレーブ側 IDEに、HDDを増設した事に なるかな。プライマリー側には、Solarisが入ったDISKが接続されてるはずなので、 少しでもインターフェースを別にして、スピードを稼ぎたいという、苦肉の策で あります。

こうしておいて、Solarisをrebootする。ああ、書き忘れていたけど、増設工事を する時は、OSは落として、マシンの電源は切った上で、マシンを、台所のキッチン シンクの上へ持って行ってください。そして、念には念を入れて、左手に銅線を 巻きつけ、もう一方の端は、水道管に巻きつけておきましょう。(勿論、水道管が アースされてないと、無意味なので注意しましょ。えっ、アースされてない。最近は そうなんですかね。そういう時は、風呂上りに、手短に風呂場で作業しましょう。)

もう一つ注意があって、寒いと言って、セーターとか化繊の服は厳禁です。冬は 静電気が発生し易いですからね。

そして通電前に、神田明神の方角に向いて、二礼二拝しておきましょう。 あそこは、ITの神様がおわしますから。 ご参考

以上の操作は、もっと簡単にVMWARE PlayerのメニューからDisk増設を選ぶ事により 出来ますが、rootはあえてハードに手を出し、神に祈る事も仕事のうちと思って、いばら の道を選んでみました。

昔のASCII出版は、"rootから/へのメッセージ" なんて言う良書を出していたんだよなぁ。ケーブル の事が書いてあったり、ペンチや工具類の事が書いてあったりで、とっても面白いよ。 1991年出版の本だから、国立図書館にでも行かないと無いかな?

認識したかな?

期待と不安に胸を膨らませて、Solarisを起動します。さあ、どうなった? 取りあえず、dmesgでも眺めてみますかね。

sakae@solaris:~$ dmesg | grep ide
Jan 24 16:28:54 solaris npe: [ID 236367 kern.info] PCI Express-device: ide@0, ata0
Jan 24 16:28:54 solaris genunix: [ID 936769 kern.info] ata0 is /pci@0,0/pci-ide@7,1/ide@0
Jan 24 16:28:54 solaris genunix: [ID 936769 kern.info] cmdk0 is /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
Jan 24 16:29:15 solaris npe: [ID 236367 kern.info] PCI Express-device: ide@1, ata1
Jan 24 16:29:15 solaris genunix: [ID 936769 kern.info] ata1 is /pci@0,0/pci-ide@7,1/ide@1
Jan 24 16:29:15 solaris genunix: [ID 936769 kern.info] sd0 is /pci@0,0/pci-ide@7,1/ide@1/sd@0,0

これを見ると、ide0とかide1とか認められるので、何となく新HDDを認識してるなと 予想は出来るんだけど、OS上の呼称は分からん、はてどうすべ? こういう時は、 ちょっと危険な匂いがするコマンドの登場です。変な事したら、おしゃかになっからね。

sakae@solaris:~$ pfexec format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c7d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
       1. c8d1 <DEFAULT cyl 3069 alt 2 hd 128 sec 32>
          /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
Specify disk (enter its number): 0
selecting c7d0
NO Alt slice
No defect list found
[disk formatted, no defect list found]
/dev/dsk/c7d0s0 is part of active ZFS pool rpool. Please see zpool(1M).
/dev/dsk/c7d0s1 is currently used by swap. Please see swap(1M).

FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        show       - translate a disk address
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> q
sakae@solaris:~$

これを見ると、元々有ったDiskは、c7d0ですね。s0,s1と2つのスライスに分かれて います。そして、増設したDiskは、c8d1ですか。

ここまで分かれば上等っぽい。c8d1を忘れるな、ですね。

いよいよ、ZFS

sakae@solaris:~$ pfexec zpool create mydisk c8d1
sakae@solaris:~$ pfexec zpool list
NAME     SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
mydisk  5.97G   138K  5.97G     0%  ONLINE  -
rpool   18.9G  6.84G  12.0G    36%  ONLINE  -
sakae@solaris:~$

やったー。あっさり出来ちゃったよ。

sakae@solaris:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
rpool/ROOT/opensolaris
                      18979564   6667552  12312012  36% /
swap                   1196340       308   1196032   1% /etc/svc/volatile
/usr/lib/libc/libc_hwcap1.so.1
                      18979564   6667552  12312012  36% /lib/libc.so.1
swap                   1196036         4   1196032   1% /tmp
swap                   1196068        36   1196032   1% /var/run
rpool/export          12312033        21  12312012   1% /export
rpool/export/home     12312033        21  12312012   1% /export/home
rpool/export/home/sakae
                      12360132     48120  12312012   1% /export/home/sakae
rpool                 12312091        79  12312012   1% /rpool
mydisk                 6160842        19   6160823   1% /mydisk

手回しよく、もうmountされてるよ。もう、c8d1なんて言う無味乾燥の名前は、忘れちゃって も、OKかな。まあ、見方よっちゃ、c8d1と言うデバイス名のaliaseが、mydiskっつう事 だな。

この対応関係を忘れちゃったらどうする。ちょっと気になったので、再び、formatコマンドを 叩いてみた。そしたら、

sakae@solaris:~$ pfexec format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c7d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
       1. c8d1 <VMware V-0000000000000000-0001-6.00GB>
          /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
Specify disk (enter its number): 1
selecting c8d1
NO Alt slice
No defect list found
[disk formatted, no defect list found]
/dev/dsk/c8d1s0 is part of active ZFS pool mydisk. Please see zpool(1M).
   
  :
partition> print
Current partition table (original):
Total disk sectors available: 12566446 + 16384 (reserved sectors)

Part      Tag    Flag     First Sector        Size        Last Sector
  0        usr    wm               256       5.99GB         12566446
  1 unassigned    wm                 0          0              0
  2 unassigned    wm                 0          0              0
  3 unassigned    wm                 0          0              0
  4 unassigned    wm                 0          0              0
  5 unassigned    wm                 0          0              0
  6 unassigned    wm                 0          0              0
  8   reserved    wm          12566447       8.00MB         12582830

危ないコマンドを叩かなくても、下記でもOKね。

sakae@solaris:~$ zpool status
  プール: mydisk
 状態: ONLINE
 スクラブ: 何も要求されませんでした
構成:

        NAME        STATE     READ WRITE CKSUM
        mydisk      ONLINE       0     0     0
          c8d1      ONLINE       0     0     0

エラー: 既知のデータエラーはありません

  プール: rpool
 状態: ONLINE
 スクラブ: 何も要求されませんでした
構成:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c7d0s0    ONLINE       0     0     0

エラー: 既知のデータエラーはありません

詳しい事は、man zpoolな。それと、man zfs に、腐る程説明があるぞ。 全くもって、うんざりだ。

つらつらと、zpoolなるコマンド読んで行くと、なんじゃいこれってSun謹製のRAIDコマンド じゃん。つう事は、今回のように一つのデバイスを用意して得意満面の顔をしたって、 お前顔洗って出直してこいと笑われるのが堕ちだわなあ。OS領域とタッグを組んでみるかな。 RAID1ぐらいでお茶を濁すか。

今作った、mydiskを壊せばいいんだな。

sakae@solaris:~$ pfexec zpool destroy mydisk
sakae@solaris:~$ zpool status
  プール: rpool
 状態: ONLINE
 スクラブ: 何も要求されませんでした
構成:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c7d0s0    ONLINE       0     0     0

エラー: 既知のデータエラーはありません

無くなったな。そんじゃ、ミラーしてみっか。

sakae@solaris:~$ pfexec zpool create mydisk mirror c7d0 c8d1
仮想デバイスの指定が無効です
次のエラーを無効にするには、'-f' を使用してください:
/dev/dsk/c7d0s0 is part of active ZFS pool rpool. Please see zpool(1M).
/dev/dsk/c7d0s1 is currently used by swap. Please see swap(1M).
sakae@solaris:~$ pfexec zpool create mydisk mirror c7d0s0 c8d1
仮想デバイスの指定が無効です
次のエラーを無効にするには、'-f' を使用してください:
/dev/dsk/c7d0s0 is part of active ZFS pool rpool. Please see zpool(1M).
sakae@solaris:~$ pfexec zpool create mydisk mirror -f /dev/dsk/c7d0s0 c8d1
'-f' を開くことができません: /dev/dsk にそのようなデバイスはありません
フルパスまたは短縮形のデバイス名を使用する必要があります

当たり前と言えば当たり前だけど、既に使われてるデバイスを共用するって出来ないのね。 こりゃ、もう一セットDISKを用意する鹿。(本当は、DISKの3つ組にしてRAID5にしたい んだが、それだと、CD Driveを取り外してしまわないといけないので、断念)

(後で思い出したんだけど、SCSIバスなら、DISKを何台も繋げるね。Wide-SCSIだと ターゲットは15台まででしたっけ? やる気のある人は、SCSIバスにDiskを何台も ぶら下げたら面白いぞ。問題は、仮想PCの電源が持つか、だけど。)

で、もう1セットを組み込んでみた。VMWAREのアイコンにDISKが3台並んだよ。 Solarisからも、こんな具合に見える。

sakae@solaris:~$ pfexec format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c7d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
       1. c7d1 <DEFAULT cyl 3069 alt 2 hd 128 sec 32>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
       2. c8d1 <VMware V-0000000000000000-0001-6.00GB>
          /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
Specify disk (enter its number):
sakae@solaris:~$ pfexec zpool create -f mydisk mirror c7d1 c8d1
sakae@solaris:~$ zpool list
NAME     SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
mydisk  5.97G    76K  5.97G     0%  ONLINE  -
rpool   18.9G  6.84G  12.0G    36%  ONLINE  -
sakae@solaris:~$ zpool status
  プール: mydisk
 状態: ONLINE
 スクラブ: 何も要求されませんでした
構成:

        NAME        STATE     READ WRITE CKSUM
        mydisk      ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c7d1    ONLINE       0     0     0
            c8d1    ONLINE       0     0     0

エラー: 既知のデータエラーはありません

  プール: rpool
     :      

ちゃんと、ミラーしてるな。今日はここまで。 to be continue ...

ちょっとおまけ

DISK増設のため、PCの蓋を開いてみたんだけど、驚いた事にCPUソケットが、4個 も実装されたぞ。セルロンを2つに割って、2つCPUを割り当てようとしたら、 そんな事すると、マシンがクラッシュするでー、と脅されたよ。 インテルに金を貢いでいる人は、2個なり4個を割り当てて、こき使ってみてください。 どなたかの実験レポートを期待します。

私は、暇にまかせてNICをもう一枚増設してみようかな。これでルーターとかを 含めたネットワーク実験が出来るな。うしし。

そうそう、もう一つ、面白いオプションSWを見つけたんだ。HDD用のガベコレボタン。 これをプチィと押したら、HDDがしぼんでくれるかいな? 本当にしぼむなら、 PostgresSQLのバキュームみたいだな。