備忘録 ML110G5 + Ubuntu + VirtualBox4 +ゲストOS(OpenIndiana) + zfs

やべ、いろいろやりすぎて混乱してきたので、ここらでまとめておこう。

◆目次

VirtualBox4のインストール

  • ここからダウンロード(http://www.virtualbox.org/wiki/Linux_Downloads)
  • Version : 4.0.8r71778
  • まえつかっていたときは2点台だったと思うからだいぶ更新されたようですね
  • Ubuntu 11.04 ("Natty Narwhal"用があるので楽ちんインストール
  • インストールに5分くらいかかったけど、無事インストール完了。
  • これが バージョン画面
  • WindowsのいれてたVirtualBoxで使っていたディスクイメージもばっちり使えた。(.vdi ファイル) すごいぞSunじゃなくてオラクル!

仮想OSとしてOpenindianaをインストール

  • ここからダウンロード(http://openindiana.org/)
  • ubuntuみたいにDesktop版とserver版がある。
  • 今回はDesktop版を試す
  • どうもOpenSolarisはもうつぶれたみたい。どうりで何年も最新版のリリースがないと思った。
    • しかしオープンインディアナって命名があまり格好良くないなァ。「公開されたインディアンの」って訳になるんだろうか。インディアナ州でつくられたのか、よくわからんが、ださくてついていけない・・・。
  • とりあえず入れてみた。今風のlinux って感じでかっこいい。
  • パッケージ管理もよく分からないが、ubuntu のようにコミュニティのレポジトリが最初からセットしてあっていろいろダウンロードてきるみたい。
  • 日本語対応がうれしい
  • ubuntuibus/anthyと同じく、ibusがインストールできたので親指シフトを試してみたが、親指キー設定をどこでやるのかみつけれなくて断念・・・。
  • 今回は親指シフトが 目的ではないのでパス。ubuntu でダメだったプリンターの認識はどうか試したかったけど、仮想環境だから今回はいいや。

zpool をつくる

  • 1GBの.xviファイルを三つつくって、 OpenIndianaに見せてやる。
# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0 
          /pci@0,0/pci8086,2829@d/disk@0,0
       1. c1t2d0  ★
          /pci@0,0/pci8086,2829@d/disk@2,0
       2. c1t3d0  ★
          /pci@0,0/pci8086,2829@d/disk@3,0
       3. c1t4d0  ★
          /pci@0,0/pci8086,2829@d/disk@4,0
Specify disk (enter its number): 
  • ★がzfs(zpool)用のdisk
  • iostat でみるとこんなかんじ
# iostat -En
c1t0d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: ATA      Product: VBOX HARDDISK    Revision: 1.0  Serial No:  
Size: 17.18GB <17179869184 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 10 Predictive Failure Analysis: 0 
c1t2d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: ATA      Product: VBOX HARDDISK    Revision: 1.0  Serial No:  
Size: 1.07GB <1073741824 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 6 Predictive Failure Analysis: 0 
c1t3d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: ATA      Product: VBOX HARDDISK    Revision: 1.0  Serial No:  
Size: 1.07GB <1073741824 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 6 Predictive Failure Analysis: 0 
c1t4d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: ATA      Product: VBOX HARDDISK    Revision: 1.0  Serial No:  
Size: 1.07GB <1073741824 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 6 Predictive Failure Analysis: 0 
# 
  • 1ギガx3本でraid5をつくる
# zpool create datapool raidz c1t2d0 c1t3d0 c1t4d0
# 
# zpool list
NAME       SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
datapool  2.95G  2.74G   215M    92%  1.00x  ONLINE  -
rpool     15.9G  4.72G  11.2G    29%  1.00x  ONLINE  -
# 
# zpool status datapool
  pool: datapool
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        datapool    ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
            c1t3d0  ONLINE       0     0     0
            c1t4d0  ONLINE       0     0     0

errors: No known data errors
#
# 
  • 無事できました。コマンドが簡単でいいですね。
    • raidz1-0というのは勝手についてしまう名前見たいです。
    • raidz1というのがRAID5相当なんだそうです。
    • raidz2 もできて、こっちはraid6相当だそうです。
  • デフォルトのパラメーター(sharenfs, sharecifs などをいじればファイル共有できるそうです)
# zfs get all datapool
NAME      PROPERTY              VALUE                    SOURCE
datapool  type                  filesystem               -
datapool  creation              水  6月 22 11:49 2011  -
datapool  used                  1.83G                    -
datapool  available             111M                     -
datapool  referenced            1.83G                    -
datapool  compressratio         1.00x                    -
datapool  mounted               yes                      -
datapool  quota                 none                     default
datapool  reservation           none                     default
datapool  recordsize            128K                     default
datapool  mountpoint            /datapool                default
datapool  sharenfs              off                      default
datapool  checksum              on                       default
datapool  compression           off                      default
datapool  atime                 on                       default
datapool  devices               on                       default
datapool  exec                  on                       default
datapool  setuid                on                       default
datapool  readonly              off                      default
datapool  zoned                 off                      default
datapool  snapdir               hidden                   default
datapool  aclinherit            restricted               default
datapool  canmount              on                       default
datapool  xattr                 on                       default
datapool  copies                1                        default
datapool  version               5                        -
datapool  utf8only              off                      -
datapool  normalization         none                     -
datapool  casesensitivity       sensitive                -
datapool  vscan                 off                      default
datapool  nbmand                off                      default
datapool  sharesmb              off                      default
datapool  refquota              none                     default
datapool  refreservation        none                     default
datapool  primarycache          all                      default
datapool  secondarycache        all                      default
datapool  usedbysnapshots       0                        -
datapool  usedbydataset         1.83G                    -
datapool  usedbychildren        815K                     -
datapool  usedbyrefreservation  0                        -
datapool  logbias               latency                  default
datapool  dedup                 off                      default
datapool  mlslabel              none                     default
datapool  sync                  standard                 default
  • zpool つくると勝手にマウントされるみたいです。/etc/vfstabにはかかないみたいです。
# cat /etc/fsab
cat: cannot open /etc/fsab: No such file or directory
# cat/ etc/fstab
bash: cat/: No such file or directory
# cat /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
/devices        -               /devices        devfs   -       no      -
/proc           -               /proc           proc    -       no      -
ctfs            -               /system/contract ctfs   -       no      -
objfs           -               /system/object  objfs   -       no      -
sharefs         -               /etc/dfs/sharetab       sharefs -       no      -
fd              -               /dev/fd         fd      -       no      -
swap            -               /tmp            tmpfs   -       yes     -

/dev/zvol/dsk/rpool/swap        -               -               swap    -       no      -
# 
# zfs list
NAME                     USED  AVAIL  REFER  MOUNTPOINT
datapool                1.83G   111M  1.83G  /datapool
rpool                   5.62G  10.0G    45K  /rpool
rpool/ROOT              3.52G  10.0G    31K  legacy
rpool/ROOT/openindiana  3.52G  10.0G  3.50G  /
rpool/dump              1023M  10.0G  1023M  -
rpool/export            32.1M  10.0G    32K  /export
rpool/export/home       32.0M  10.0G    32K  /export/home
rpool/export/home/test    32.0M  10.0G  32.0M  /export/home/test
rpool/swap              1.06G  10.9G   170M  -
# 
# df -h datapool
Filesystem             size   used  avail capacity  Mounted on
datapool               1.9G   1.8G   111M    95%    /datapool
# 
# mount -v |grep datapool
datapool on /datapool type zfs read/write/setuid/devices/nonbmand/exec/xattr/atime/dev=2d90006 on 土  6月 25 23:18:30 2011
# 

zfsと、外部からのデータ転送テスト

  • ほんとはCIFSの設定をして、家庭内LAN上のWindowsから使ってみたかったんですけど、どうもVirtualBoxでホストオンリーネットワークっていうのを指定してやればいいみたいなんですが、それを使うと、同一LAN上の他の機器からなぜかhostOSに対してアクセスできなくなってしまいました。VirttualBox用のインターフェースにブリッジ設定してやればできるとか、ググるといろいろでてくるんですが、あまり理解できなかったので今回はパス。
  • とりあえずデフォルトのNAT設定でOpenindiana上からもネットくらいはできますが、ホストOSからはアクセスできません。
    • NATの動き: (1)ゲストOSから外には出れる (2)そとからゲストOSには入れない、pingも飛ばない
  • で、ポートフォワーディングという機能を使えば限定的ですが、外部からつながるようになりました。
    1. VirtualBoxマネージャー左画面で、ゲストOSを右クリック→設定 (or Ctrl+S)
    2. ネットワーク→アダプタ1タブ→割り当て「NAT」であることを確認→高度→ポートフォワーディング
    3. プロトコル「TCP」,ホストポート「10022」、ゲストポート「22」(ゲストOSにsshするときはホストOSの10022ポートを使うという設定)
    4. プロトコル「TCP」,ホストポート「10021」、ゲストポート「21」(ゲストOSにftpするときはホストOSの10021ポートを使うという設定)
    5. OKをおし、ゲストOSを起動する
    6. ホストOS上で自分の10022ポート宛にsshしてみる
kk@saber:~$ ssh localhost -p 10022
Password: 
Last login: Sat Jun 25 23:51:43 2011 from 10.0.2.2
OpenIndiana     SunOS 5.11      oi_148  November 2010
-bash-4.0$ showrev
-bash: showrev: コマンドが見つかりません
-bash-4.0$ uname -a
SunOS openindiana 5.11 oi_148 i86pc i386 i86pc
-bash-4.0$ cat /etc/release
                      OpenIndiana Development oi_148 X86
        Copyright 2010 Oracle and/or its affiliates. All rights reserved.
                        Use is subject to license terms.
                           Assembled 29 November 2010
-bash-4.0$ 
    • おお、これはすごい。
    • 同一LAN上の他のWindowsマシンからも、TeratermでホストOS port10022に対してSSHすると、ちゃんとゲストOS(OpenIndiana)に入れた。
    • Solarisで一番有名な「showrevコマンド」がデフォルトで入っていない。Oracleの権利かなんかにひっかかるのか。そのくせtopとかLinuxっぽいコマンドはデフォルトで入っている。デフォルトのshellもbashだし。だいぶLinuxに歩み寄っているのか。ネットワークの設定も/etc/hostname.e1000g0とかではなくて、どこで設定されているのかさっぱり・・・、また今度調べよう・・・。
  • 気を取り直してftp
-bash-4.0$ svcs ftp
STATE          STIME    FMRI
disable         10:26:59 svc:/network/ftp:default
-bash-4.0$ svcadm enable -r ftp
-bash-4.0$ svcs ftp
STATE          STIME    FMRI
online         10:26:59 svc:/network/ftp:default
    • あと、testユーザのデフォルトのdirをzpool にしといた。(vi /etc/passwd)
    • ホストOS上から自分の10021番に対してftp
$ ftp localhost 10021
Connected to localhost.
220 openindiana FTP server ready.
Name (localhost:test): test
331 Password required for test.
Password:
230 User test logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/datapool" is current directory.
ftp> ls
502 Illegal PORT Command
ftp: bind: Address already in use
ftp> !ls
Ubuntu One	brasero.iso	      examples.desktop	test.txt      テンプレート  ドキュメント  ピクチャ	公開
VirtualBox VMs	chkconfig-before.txt  ftp.sh		ダウンロード  デスクトップ  ビデオ	  ミュージック
ftp> mput test.txt
mput test.txt? y
502 Illegal PORT Command
ftp> help
Commands may be abbreviated.  Commands are:

!		debug		mdir		qc		send
$		dir		mget		sendport	site
account		disconnect	mkdir		put		size
append		exit		mls		pwd		status
ascii		form		mode		quit		struct
bell		get		modtime		quote		system
binary		glob		mput		recv		sunique
bye		hash		newer		reget		tenex
case		help		nmap		rstatus		tick
cd		idle		nlist		rhelp		trace
cdup		image		ntrans		rename		type
chmod		lcd		open		reset		user
close		ls		prompt		restart		umask
cr		macdef		passive		rmdir		verbose
delete		mdelete		proxy		runique		?
ftp> 
ftp> ls
502 Illegal PORT Command
    • なにやらうまくいかない。確かにログインはできたが、lsもputもできない。PASIVEモードは有効にしていないが、ほかにもポートフォワーディングしないといけないポートがあるのか・・・。わからないんでまた今度調べる。
    • ショウガ無いんでftpはあきらめて、scpでファイル転送をためしてみることに。
    • ちょうど1GBくらいのファイルがあったからこれにしよう。
$ ls -lh *mp4
-rwxrwx--- 1 test test  644M 2011-05-23 01:25 わが青春のアルカディア.mp4
-rwxrwx--- 1 test test  802M 2011-05-23 01:27 サマーウォーズ.mp4
-rwxrwx--- 1 test test 1002M 2011-05-23 01:32 スカイクロラ.mp4

$ scp -P 10022 "スカイクロラ.mp4"  localhost:/datapool
Password: 
スカイクロラ.mp4                                                                                                       100% 1002MB  13.7MB/s   01:13 
    • 転送中のインディアンのiostatの結果。datapoolというzpoolは物理Disk c1[234]d0で構成されていますが、均等にwriteがかかっています。
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
                    extended device statistics              
    r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
    0.0   35.0    0.0  285.9  0.0  0.0    1.2    0.4   1   2 c1t0d0
    0.0  410.0    0.0 3340.5  0.0  0.9    0.0    2.1   0  29 c1t2d0
    0.2  404.0   12.8 3338.8  0.0  0.8    0.0    2.1   1  30 c1t3d0
    0.2  397.2   12.8 3336.2  0.0  0.5    0.0    1.2   1  22 c1t4d0
    • ホストOS(Ubuntu)上のiostatの結果。上と同じ。
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          21.78    3.50   48.85    6.69    0.00   19.18

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00   102.80    1.20   80.80     0.60  9757.70   238.01     1.07   12.98   12.00   12.99   2.84  23.28
sdb               0.00   102.40  103.60   78.00 13107.80  9756.60   251.81     1.25    6.87    1.19   14.42   1.75  31.84
sdc               0.00    84.40    1.20   97.40     0.60  9829.70   199.40     0.48    4.92    0.67    4.98   1.23  12.08
    • 1GBを1分ちょっとで転送できました。これはhost os -> guest os へのファイルのやりとりなんでなんの参考にもなりませんが。
  • あと,韓国語のファイル名をちゃんとやりとりできるかのテスト。
    • 時代はUTF8ですからね。インディアンも utf8がデフォルトのようです。
    • もしかしたら、最近はやりのKARAとか少女時代の歌が入っているかもしれないので、韓国の選りすぐり女性歌手のおすすめオムニバスCDを転送してみました。
    • ↓はubuntu側のログ
$ scp -r -P 10022 "여자의 향기 Vol.2"  localhost:/datapool
Password: 
06 Say Good-Bye.mp3                                                                                                          100% 6150KB   6.0MB/s   00:00    
07 To My Prince.mp3                                                                                                          100% 5496KB   5.4MB/s   00:00    
01 I Believe.mp3                                                                                                             100% 6880KB   6.7MB/s   00:01    
17 송애.mp3                                                                                                                100% 5493KB   5.4MB/s   00:00    
13 기억 속으로.mp3                                                                                                      100% 6505KB   6.4MB/s   00:01    
04 외면.mp3                                                                                                                100% 6331KB   6.2MB/s   00:01    
18 마지막 너늘 보내며.mp3                                                                                            100% 6534KB   6.4MB/s   00:00    
03 하루하루.mp3                                                                                                          100% 6111KB   6.0MB/s   00:01    
11 영원으로.mp3                                                                                                          100% 5811KB   5.7MB/s   00:00    
08 Missing You.mp3                                                                                                           100% 5512KB   5.4MB/s   00:01    
14 살아있는 그날까지.mp3                                                                                             100% 5831KB   5.7MB/s   00:00    
16 괜찮아.mp3                                                                                                             100% 6332KB   6.2MB/s   00:01    
05 마지막 사랑.mp3                                                                                                      100% 5880KB   5.7MB/s   00:00    
10 힘겨워하는 아이들을 위하여.mp3                                                                                100% 5991KB   5.9MB/s   00:01    
02 다 알아요.mp3                                                                                                         100% 5923KB   5.8MB/s   00:00    
12 우리다시.mp3                                                                                                          100% 5864KB   5.7MB/s   00:01    
09 여자가 남자를 떠날 때.mp3                                                                                        100% 5688KB   5.6MB/s   00:00    
15 고백성사.mp3                                                                                                          100% 5962KB   5.8MB/s   00:01 
    • ↓はインディアン側のログ
 -bash-4.0$ ls
 arc.after          download           여자의 향기 Vol.2
 arc.before         スカイクロラ.mp4
 -bash-4.0$ ls -lh "여자의 향기 Vol.2"
 total 218634
 -rw-r--r--   1 test       staff       6.7M  6月 26 11:25 01 I Believe.mp3
 -rw-r--r--   1 test       staff       5.8M  6月 26 11:25 02 다 알아요.mp3
 -rw-r--r--   1 test       staff       6.0M  6月 26 11:25 03 하루하루.mp3
 -rw-r--r--   1 test       staff       6.2M  6月 26 11:25 04 외면.mp3
 -rw-r--r--   1 test       staff       5.7M  6月 26 11:25 05 마지막 사랑.mp3
 -rw-r--r--   1 test       staff       6.0M  6月 26 11:25 06 Say Good-Bye.mp3
 -rw-r--r--   1 test       staff       5.4M  6月 26 11:25 07 To My Prince.mp3
 -rw-r--r--   1 test       staff       5.4M  6月 26 11:25 08 Missing You.mp3
 -rw-r--r--   1 test       staff       5.6M  6月 26 11:25 09 여자가 남자를 떠날 때.mp3
 -rw-r--r--   1 test       staff       5.9M  6月 26 11:25 10 힘겨워하는 아이들을 위하여.mp3
 -rw-r--r--   1 test       staff       5.7M  6月 26 11:25 11 영원으로.mp3
 -rw-r--r--   1 test       staff       5.7M  6月 26 11:25 12 우리다시.mp3
 -rw-r--r--   1 test       staff       6.4M  6月 26 11:25 13 기억 속으로.mp3
 -rw-r--r--   1 test       staff       5.7M  6月 26 11:25 14 살아있는 그날까지.mp3
 -rw-r--r--   1 test       staff       5.8M  6月 26 11:25 15 고백성사.mp3
 -rw-r--r--   1 test       staff       6.2M  6月 26 11:25 16 괜찮아.mp3
 -rw-r--r--   1 test       staff       5.4M  6月 26 11:25 17 송애.mp3
 -rw-r--r--   1 test       staff       6.4M  6月 26 11:25 18 마지막 너늘 보내며.mp3
 -bash-4.0$ locale
 LANG=ja_JP.UTF-8
 LC_CTYPE="ja_JP.UTF-8"
 LC_NUMERIC="ja_JP.UTF-8"
 LC_TIME="ja_JP.UTF-8"
 LC_COLLATE="ja_JP.UTF-8"
 LC_MONETARY="ja_JP.UTF-8"
 LC_MESSAGES="ja_JP.UTF-8"
 LC_ALL=
 -bash-4.0$ 
    • うん、ばっちり。ファイルサーバにしていろんな国の人たちがデータ置きにきても拒まずにすみそうです。さやか「友愛も大東亜共栄圏もあるんだよ・・・。」

◆今後やってみたいこと

  • ubuntuをやめて、インディアンをクリーンインストールし、またVirtualBoxいれて、そこにubuntuをのせたい。
    • ≪懸念点≫
    • インディアンじゃ親指シフトできない
    • インディアンじゃメイン使用のデスクトップOSにはなりえいないから、ゲストOSの ubuntuをメインにつかうという矛盾した自体に・・・。
    • ゲストOSのubuntu がアップルキーボードを認識してくれればいいのだが、インディアンとVirtualboxのコンビがちゃんとキーボード配列をubuntu様に引き渡すか怪しい
  • で同一容量のDisk x4本つんでzpool でraidz組たい。メモリもじゃんじゃん増やしてARCの動作とか試したい。(参考)
    • ≪懸念点≫
    • ようするにメンテナンスしやすいでっかいストレージ領域がほしいということ。
    • zfsのsharecifsとかつかってデータ領域を共有したい。
    • 実はメイン利用者はぼくじゃなくて、他のWindowsのノートからアクセスする家族。写真や動画の閲覧がメインになる。
    • 今あるDiskサイズがバラバラなんで、4本のディスク揃えるのは経済的にイタい。
    • 同一容量で違うメーカーのディスクをそろえたらどうなるのだろうか。RAIDはくめるだろうが、Disk交換したとき、ちゃんとリビルドされるのか。シリンダ数とかちがうだろうし、zpoolに組み込んだ時点でfdiskとかの制御できなくなるので、インディアンにおまかせ状態になる。


ふはー、今回はたっぷり調べたなー。なんとなく充実感。数日たったら今日やったことも全部わすれているだろうから、この日記は貴重なものになりそうですぞ。フリーのOSとVirtualBoxされあれば、お金無くてもいろいろ遊べるもんですねー。