cappuccinoのコンピタブログ

cappmac.exblog.jp
ブログトップ

タグ:ZFS ( 1 ) タグの人気記事

なにかと便利な Solaris

最近、Solarisを結構気に入って使っています。
先日、自宅サーバのOSもUbuntuからSolarisに切り替えてしまいました。
メモも兼ねて、Solaris布教活動をしたいと思います。

実のところSolarisをいじるのはこれまでも何度かありました。会社でもいじっていますし。
Solarisがイケルと思ったのも会社でOpenSolaris 2008.11を入れたあたりから。それまではなんだかGUIのCDEがバタ臭いコマンドも使いづらく、ドライバも無いOSというイメージだったのですが、最近ではかなりLinuxの空気を取り入れて、これなら使っても良いかも?なんて思ってしまうほど改善されてきています。

ちなみに気に入った点はこんなところ
(Solarisの独断と偏見に満ちた利点)
1.サービスの導入・管理のしやすさ
2.安定性(性能面、GUI)
3.Windows/Mac OS Xとの親和性

1.について
Ubuntuとかも見た目には初心者に優しいんですが、インストール容量の割に意外と最初から入ってるサービスが浅いというか・・・あまり実用性が高くないんですよね。そのためサービス導入でつまづきやすいです。
その点、SSHやVNCが最初から入ってるっていうのはありがたいです。Sambaはさすがに最初から入っていたりしませんが、yumやaptに似たシステムで簡単にインストールできるので便利です。
パッケージ管理はLinuxやFreeBSDに劣っていた点を、見劣りしない程度までリカバリした感がありますが、サービス管理はLinuxのディストリやFreeBSDといった他のUNIX互換OSにない強みだと思います。
システム→システム管理→サービスの管理を実行すればなにがサービスとして稼働しているかが一目瞭然だし、チェックを入れて設定ファイルを少しいじればサービスを利用可能になる気軽さは非常にありがたい。まさにMac OS X感覚です。Fedoraとかにもserviceとかchkconfig等サービス管理のためのコマンドがありますが、GUIの被せ方が下手に思えます。

c0064553_20521748.jpg
サービスの管理

2.について
限られたCPU性能、限られたメモリ容量においてLinuxより動作が軽いように感じます。ベンチをとった訳じゃないから不用意なことはいえませんが、複数のサービスが動作し、大容量のアーカイブの展開しているような時にもGUIのレスポンスがキビキビとしている辺りはLinuxよりデキがいいのではと感じてしまう。
2008.11のころはGUIがしょっちゅう固まったりして、やはり後付けのおまけみたいなものかと思っていましたが、見違えるようです。
そもそも、先日Solaris移行に踏み切るきっかけはGUIの安定性にありました。Ubuntu 9.10(Karmic Koala)にてちょっとした設定変更をするにしても、次回起動時にログインできなくなる症状が現れました。Fail Safe Gnomeログインを選択すればログインはできますが、ちょっとバギー過ぎるのではというのが私の印象です。

3.について
この前のエントリで取り上げたように、Mac OS XのSambaはいろいろクセが強いようで、トラブルシューティングするだけでもかなりの労力をとられる。
Linux、FreeBSDがダメなら、いっそSolarisでも試してみようかとSamba接続をMacから試みたところ、問題1、2ともに解決してしまいました。
さらに今のOpenSolarisには使える目玉機能としてZFSとiSCSIがありますが、こちらもMac OS XのTimeMachineのバックアップ先として活用できれば利便性が上がります。正直ZFSは使い始めた頃勝手が分からず困ったのですが、徐々に使い方に慣れてきました。Sambaが簡単に導入できるということでもちろんWindowsとの親和性も高いです。

c0064553_20562881.jpg
シンボリックリンク先を参照している様子

残念なところ
良いところがあれば悪いところがあるもの。Solarisの欠点と思われるものを列挙してみました。
1.ext2/ext3/ext4/NTFSのサポートが無い。
2.VMwareが動かない。
3.Solaris独特のコマンドに慣れる必要がある。

1.について
広く使われているファイルシステムのサポートが無いのは痛いです。
草の根では、これらファイルシステムのサポートもされているようです。
試しましたが、動きませんでした。

2.について
VMwareの代わりにVirtualBoxがあるので何とかなりはしますが、VMwareのノウハウが活かせないので残念感が...

3.について
Solaris独自コマンドも多いですが、tarのように同じコマンドなのに違うオプション...みたいなのもあります。tarに限ってはgtarもあるので問題ないのですが。

設定メモ
[SSH]
最初から入っており、機能がオンになっている。特に何も考えることも無くログインできる。

[VNC]
最初から入っている。機能はオンになっていない。Vinoのようなログインしないと機能しないVNCではなく、inetdのサービスとしてXnvcを利用できる。
VNCは「サービスの管理」からxvnc-inetdを有効にする。また、/etc/X11/gdm/custom.confを有効にして、以下の内容を編集する。

c0064553_2058066.jpg
Xvnc有効化

[security]
DisallowTCP = false
AllowRoot = true
AllowRemoteRoot = true
[xdmcp]
Enable = true

これにより、VNCはサービスとして動作し、VNCクライアントからの接続時にログイン画面を出すようになる。
通常のログインと同じようにユーザ名・パスワードを入力すればデスクトップが表示できる。
#なお、xdmcpはMac OS X標準のVNCクライアント機能「画面共有」では利用できないようだ。
#私の場合はMacPortsで入れたvncviewerを使ってxdmcpによるログインを行った。

[Samba]
最初から入ってはいない。パッケージマネージャーを使ってSambaをインストールし、機能をオンにする必要がある。
インストール方法は「パッケージマネージャ」からsmbで検索し、SUNWsmbaをインストールする。この際、SWATも同時にインストールされる。

c0064553_20584787.jpg
Sambaインストール

「サービスの管理」でwinbinddとsmbdを有効にする。SWATもオンにしたい場合はswatにもチェックを入れる。
smb.confが無いので、/etc/sfw/smb.conf-exampleをリネームコピーして作成。ホームディレクトリ共有だけならばこれだけでOK。
smbpasswdの実行を忘れてハマったw。案外忘れやすいので注意。これを忘れるとログインができない。
ちなみにsmbpasswdは

% smbpasswd -a <ユーザ名>
で設定したいパスワードを2回打てばOK。

なお、SWATの設定にはroot権限が必要。
root権限はインストール直後の状態では有効ではない。sudoはないのでsuでrootログインして以下のコマンド。
% rolemod -K type=normal root

[ZFS]
デフォルトのフォーマットがZFS。意識せずとも使用していることがインストールしてから分かる。もっとも分かるためにはdf、zpool、zfsの各コマンドの知識が最低限必要。

c0064553_2183728.jpg
dfでzfsであることを確認している様子。

サーバをやる以上、バックアップ and RAIDは意識したいところ。ZFSは簡単にそれらを実現できる。
バックアップ
「タイムスライダ」を利用する。定期的にスナップショットを記録するため、最悪でも1日前の状態に戻すことができる。
RAID
RAID1相当を実現するために、ミラー構成にする。起動ディスクまるごとミラーリングのためには同じ容量のHDDを用意し、以下のコマンドを実行する。
・パーティションテーブルのSolaris化
ZFSにするために必須。
formatでディスクを指定。
% format
fdiskでパーティション情報を変更。
> fdisk
まずは既存のパーティション情報の削除
3→パーティション消去
1→消去したいパーティション番号選択
y→OK
次にSOLARIS2パーティション作成
1→パーティション作成
1→SOLARIS2パーティションを作成
100→作成パーティションのディスク占有率
y→OK
exitで実行される。

prtvtocでTOC情報を同期
% prtvtoc /dev/rdsk/c8d0s0 | fmthard -s - /dev/rdsk/c9d0s0
fmthard: New volume table of contents now in place.
#同一容量でないとうまくいかないっぽい。
既存HDDへのアタッチ
% zpool attach -f rpool /dev/dsk/c8d0s0 /dev/dsk/c9d0s0
-fオプションを抜かすと
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c9d0s0 overlaps with /dev/dsk/c9d0s2

といわれてうまくいかない。
成功すると以下のメッセージが出る。
Please be sure to invoke installgrub(1M) to make '/dev/dsk/c9d0s0' bootable.
いわれた通りにgrubをインストールする。grubをインストールしておくことでオリジナルのディスクが死んでも、ミラーHDDから起動できる。
% installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c9d0s0
dskで実行すると、device /dev/dsk/c9d0s2 is not a char special deviceといわれてうまく実行されなかった。
成功すると
stage1 written to partition 0 sector 0 (abs 16065)
stage2 written to partition 0, 271 sectors starting at 50 (abs 16115)

というメッセージが出る。
これで、zpool statusを実行すると、ミラー構成になっていることが分かる。
% zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h4m, 6.47% done, 1h4m to go
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c8d0s0 ONLINE 0 0 0
c9d0s0 ONLINE 0 0 0 15.5G resilvered

errors: No known data errors

ここに表示されているresilveredという情報がミラーリングされたデータ量を示している。15.5GB分が6.47%の進捗であと1時間4分でミラーが完了するということを示している。
[PR]
by cappuccino_mac | 2010-01-02 07:39 | 設定覚え書き | Comments(2)