ServeRaid M1015はH77 Pro4/MVPで動かないでござる
ASRcok H77 Pro4/MVPではIBM ServeRaid M1015(MegaRAID SAS 9240-8i)は動かない。
MPT2 BIOSの画面が出ないのは当然として、そもそもEFIで認識してくれない。PCIeのスロット変えてもダメ。
megarec.exeが「Warning! IO Base address high. Currently not supported」なるエラーを吐くのと関係してんのかなぁ。
家鯖のRAID-Zを構成しているHDD7台をM1015に繋いで、マシンの構成をすっきりさせる計画があああああ。ここまで来たらもう後には引けないので、妙に安くなってるGA-H77-D3H-MVP/Aをポチってみた。6980円の散在。
注文してから気づいたんだけど、こいつのNICってAtherosなのね。ESXiが対応してないんじゃん。ダメじゃん。茨の道を素足で突き進んでる気がする。
eBayでSFF-8087ケーブルを買ってみた
SFF-8087→SATAx4のケーブルが必要になった。ケースの都合上、SATA側は逆L型が望ましいのだが、国内で買うとそこそこ値が張る。そんな時はeBayだ!ってなもんで覗いてみると、送料無料で11米ドル程度〜だったので注文してみた。初eBay。
参考までに注文から配達までの経過を掲載。
| 日付 | 事象 | 場所 |
|---|---|---|
| 6/1 (土) | 注文 | |
| 6/3 (月) | 出品者から発送通知 | |
| 6/5 (水) | 引受 | HONG KONG |
| 6/8 (土) | 国際交換局から発送 | KOWLOON D/HONG KONG |
| 6/9 (日) | 国際交換局に到着 | 成田国際空港郵便局 |
| 6/10(月) | 通関手続中 | |
| 国際交換局から発送 | ||
| 6/11(火) | 到着 | 最寄りの集配局 |
| 配達 |
香港から土日挟んで10日か。香港から出るまでに結構日数を食ってるが、日本国内に入ってからは流石の早さ。凄いぞ日本郵政。
ちなみに、荷物は国際特殊通常書留(問い合わせ番号がRCxxxyyyzzzHKという形式)扱いだった。ただ、この問い合わせがくせ者で、Hongkong Postの追跡サービスへの反映が極めて遅い(2013/6/8現在。確か日本郵政のサイトにも、香港郵政の追跡反映が遅延していると案内が出ていた)。日本郵政の追跡サービスの方で見るのが吉。
旧正月の時期は通常期より遅滞すると思うので要注意。
FreeBSD 9-RELEASEをRoot on ZFSで自動インストールするスクリプト作ったよー
FreeBSDをRoot on ZFSでインストールするには多大なコマンド入力が必要で、超面倒&高確率でミスを犯すので自動インストールするシェルスクリプト作った。 FreeBSD 9-RELEASE用。8はシステムの展開方法が違うので、そのままじゃ使えない。むしろ、さくらのVPS(2G)用。VNCコンソールでちまちま設定するのが面倒だったので…。
パーティションサイズやcompressionの設定、loader.confの中身は激しく俺仕様なので、要修正。
起動メディアからインストーラを立ち上げたら「Shell」に落ちて、このスクリプトを/varあたりに置いて実行すれば完全自動でRoot on ZFSな環境が出来上がるよ! ユーザーやらタイムゾーンやらの設定は全くしてないので、次回起動時に適宜設定する方向で。
システムファイルを配布サイトから取ってくる関係上、ifconfigとroute add defaultだけは手入力が必要。あと、スクリプトをどうやってインストール環境に持ってくかって問題もあるが、Root on ZFSしようとする人なら自前でFTPサーバくらい用意出来るだろうって事で。
- freebsd9-root-on-zfs-installer.sh
#!/bin/sh # FreeBSD 9.1-RELEASE Root on ZFS Installer # システムファイルの配布サイト URL="ftp://150.65.7.130/pub/FreeBSD/releases/amd64/9.1-RELEASE/" # RAMディスク設定 RAMDISK="/tmp" RAMDISK_DEV="md1" # インストールに必要なtxzが収まり、物理メモリが1GBちょい空く位の容量にする RAMDISK_SIZE="512M" # インストールファイルのダウンロード先 DISTDIR="$RAMDISK/dist" DISTFILES="base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz games.txz" # インストール先ディスク DISK="ada0" # スワップパーティション名 SWAPNAME="-l swap" # スワップサイズ SWAPSIZE="-s 8G" # データパーティション名 DATANAME="-l data" # データボリュームサイズ DATASIZE="-s 10G" # ストレージプール名 ZPOOLNAME="zroot" # インストール先ZFSファイルシステム SYSROOT="$ZPOOLNAME/ROOT" # 仮マウントポイントルート MOUNTPOINT="/tmp/zfs" # ストレージプールの代替マウントポイント ALTROOT="$MOUNTPOINT/" # インストール先フルパス DESTDIR=$MOUNTPOINT/$SYSROOT # ramdisk作り直し echo 'Create ramdisk' umount -f /dev/$RAMDISK_DEV mdmfs -s $RAMDISK_SIZE $RAMDISK_DEV $RAMDISK mkdir $MOUNTPOINT # パーティション作成 echo 'Create partitions...' sysctl kern.geom.debugflags=0x10 dd if=/dev/zero of=/dev/$DISK bs=1m count=100 gpart create -s gpt $DISK gpart add -a 4k -s 64k -t freebsd-boot $DISK gpart add -a 4k $SWAPSIZE -t freebsd-swap $SWAPNAME $DISK gpart add -a 4k $DATASIZE -t freebsd-zfs $DATANAME $DISK gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 $DISK # 4kセクタでzpool作成 echo 'Create storage pool : ' $ZPOOLNAME gnop create -S 4096 /dev/${DISK}p3 zpool create -R $ALTROOT -f $ZPOOLNAME /dev/${DISK}p3.nop zpool export $ZPOOLNAME gnop destroy /dev/${DISK}p3.nop zpool import -R $ALTROOT $ZPOOLNAME echo 'Create ZFS file systems' zfs set checksum=fletcher4 zroot zfs create -o normalization=formC $SYSROOT zfs create $SYSROOT/usr zfs create -o compression=gzip-9 $SYSROOT/usr/include zfs create -o compression=gzip-9 $SYSROOT/usr/src zfs create $SYSROOT/usr/home cd $DESTDIR/; ln -s /usr/home home cd / zfs create -o compression=gzip-9 -o setuid=off $SYSROOT/usr/ports zfs create -o compression=off -o exec=off -o setuid=off $SYSROOT/usr/ports/distfiles zfs create -o compression=off -o exec=off -o setuid=off $SYSROOT/usr/ports/packages zfs create -o compression=on $SYSROOT/var zfs create -o exec=off -o setuid=off $SYSROOT/var/crash zfs create -o exec=off -o setuid=off $SYSROOT/var/db zfs create -o exec=on -o setuid=off $SYSROOT/var/db/pkg zfs create -o exec=off -o setuid=off $SYSROOT/var/empty zfs create -o exec=off -o setuid=off $SYSROOT/var/log zfs create -o exec=off -o setuid=off $SYSROOT/var/mail zfs create -o exec=off -o setuid=off $SYSROOT/var/run zfs create -o exec=on -o setuid=off $SYSROOT/var/tmp chmod 1777 $DESTDIR/var/tmp zfs create -o exec=on -o setuid=off $SYSROOT/tmp chmod 1777 $DESTDIR/tmp echo 'Set bootfs='$SYSROOT zpool set bootfs=$SYSROOT $ZPOOLNAME echo 'Create zpool.cache' zpool export $ZPOOLNAME zpool import -o cachefile=/tmp/zpool.cache -R $ALTROOT $ZPOOLNAME echo 'Fetch system files' mkdir $DISTDIR cd $DISTDIR for file in $DISTFILES do fetch ${URL}$file done echo 'Install system files' for file in $DISTFILES do echo " extract... ${file}" cat $file | tar --unlink -xpJf - -C ${DESTDIR:-/} done cp /tmp/zpool.cache $DESTDIR/boot/zfs/zpool.cache LOADERCONF=$DESTDIR/boot/loader.conf echo 'Create '$LOADERCONF echo 'zfs_load="YES"' >> $LOADERCONF echo 'vm.kmem_size="512M"' >> $LOADERCONF echo 'vm.kmem_size_max="1024M"' >> $LOADERCONF echo 'vfs.root.mountfrom="zfs:'$SYSROOT'"' >> $LOADERCONF echo 'vfs.zfs.prefetch_disable="1"' >> $LOADERCONF echo 'vfs.zfs.vdev.cache.size="10M"' >> $LOADERCONF echo 'vfs.zfs.arc_max="128M"' >> $LOADERCONF RCCONF=$DESTDIR/etc/rc.conf echo 'Create '$RCCONF echo 'zfs_enable="YES"' >> $RCCONF # sshを有効にする(危険なので各種設定が終わったらルートログイン不許可にすること) #echo 'sshd_enable="YES"' >> $RCCONF #SSHCONF=$DESTDIR/etc/ssh/ssh_config #echo 'PermitRootLogin yes' >> $SSHCONF FSTAB=$DESTDIR/etc/fstab echo 'Create '$FSTAB echo '/dev/gpt/swap none swap sw 0 0' >> $FSTAB echo 'Set mountpoints' zfs set readonly=on $SYSROOT/var/empty zfs umount -af zfs set mountpoint=none $ZPOOLNAME zfs set mountpoint=legacy $SYSROOT zfs set mountpoint=/usr $SYSROOT/usr zfs set mountpoint=/tmp $SYSROOT/tmp zfs set mountpoint=/var $SYSROOT/var echo 'Done.'
で、だ。自作スクリプトが完成した直後に、zfsinstallという、そのまんまの名前の高機能なインストーラの存在を知って涙目。
お、俺スクリプトの方が引数とかないし、か、簡単に使えるし(震え声)
ストレージプールの直下以外でRoot on ZFSする時はmountpoint=noneを忘れずに(確信)
FreeBSDのRoot on ZFSで、ストレージプールのルート以外をシステムのルートディレクトリにする時は、ストレージプールのルートのマウントポイントを殺さないと死ぬ。
これだけじゃ何の事か分からんと思うので具体例をあげると、ストレージプールztankがあり、ztank/SYSROOTにFreeBSDをインストールしたとする。 インストール終盤で、以下のようにマウントポイントを設定するわけだが、1行目のztankルートに対するマウントポイントの設定を忘れると、システムの起動でこける。
zfs set mountpoint=none ztank # 忘れがち!! zfs set mountpoint=legacy ztank/SYSROOT zfs set mountpoint=/usr ztank/SYSROOT/usr ...
“Trying to mount root from zfs:ztank/SYSROOT”は成功しているのに、直後に「ファイルがないよー」的なログが出てabortしてしまう。症状から察するに、どうやらztankの方が先に/にマウントされてしまい、起動に必要なファイルが見えない状態の模様。分かってしまえばどうってことはないが、地味に分かりづらい厄介な罠。
特に設定しなければ、ストレージプールは/poolnameとしてマウントされるはずなんだけど、なんで/にマウントされちゃうんだろう・・・?
尚、例ではmountpoint=noneにしてるけど、ルート(とシステム関係の場所)以外なら任意に設定して大丈夫だと思う(試してないけど)。
Mountain LionでさくらのVPSのVNCコンソールを使う
MacOS X v10.8 Mountain Lion・・・というか、Java SE Runtime Environment 7だとVNCコンソールが起動できない模様。林檎様の公式ドキュメントでJava 6に戻したら、無事起動出来た。
これで、ESXi上のゲイツにリモートデスクトップしてVNCするというアホな事しなくても済む。
もしもの時のためコマンドを転載。
sudo mkdir -p /Library/Internet\ Plug-Ins/disabled sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin sudo ln -sf /System/Library/Frameworks/JavaVM.framework/Commands/javaws /usr/bin/javaws
VNCコンソールは日本語キーボード専用だったりとか、(→2013/10/31の更新でキーボード配列が選べるようになった。) さくらのVPS罠大杉だろjk…。ちなみに、僕は“常識的に考えて”よりも女子高生の方が好きです。女子校生じゃなくて女子高生です。
尚、英語キーボード問題はシステム環境設定>キーボード>キーボードの種類を変更…で、無理やりJISキーボードに設定する事で回避可能。VNC側でキートップ通りの入力が出来る(言うまでもなくMac側はおかしくなるけど)。英語KBしか持ってない変態野郎 ギークも、これで安心だね!!
2014-07-28 追記
いつのまにか「HTML5モード」なるVNCコンソールが用意されていた。名前の通り、VNCビューワのHTML5版だと思われるが、これはイイ!