../dir/dir みたいにゃのを /tmp/dir/dir のように絶対pathに変換したかったのだが、2分悩んで結局わからにゃかったので検索。やっぱりそれっぽいコマンドが見つからにゃい。うーん、無いのか??
`cd 相対パス && pwd`
という方法はあるけど、ちょっとそれはどうにゃのか。ていうか存在しにゃいディレクトリにゃらどうすんの・・・
というわけでcifs関係にゃい気味だがrsyncでpdumpfs的にゃバックアップの話。
SRC=`cd $1 && pwd`/
DST=`cd $2 && pwd`/
mkdir -p ${DST}/0
last_dir=`ls ${DST} | tail -1`
rmdir ${DST}/0
new_dir=`date +%G%m%d%H%M`
mkdir -p "${DST}/${new_dir}"
rsync -a --link-dest="${DST}/${last_dir}" "${SRC}" "${DST}/${new_dir}"
とかでとりあえず骨子としては動いてるようだ。
255文字超にゃものはFile name too longでエラー落ちしてる。
ちにゃみにreiserfsとかの上でやらにゃいと多分死ねる
あと、これをzfsとかでより節約志向でやるとどうにゃるんだろうにゃ? ファイルの一部分書き換えだからrsyncそのまま使えるんだと思うんだが微妙に自信がにゃいのと、スナップショットをもちっと見やすくアクセスするあたりを調べてからの方がよさそうにゃので回避。
winのDFSにある/homeをお手軽世代バックアップしたいにゃぁとおもって、pdumpfsのWin版を使ってみたら、やっぱりNTFSのhard linkが致命的に遅くて、せいぜい1週間分とれるかどうかという状態だったので、さらにそれをvm化してnfs上にvmdkを置いて、nfs鯖のキャッシュで一気に高速化したものの、やっぱりそれでも致命的に遅いわけで、まぁLink数が少にゃければ半日で終わるんだけど、そのためにnfs鯖を1つ上げとくのもばからしいわけで、もうcifsでmountしてLinux上でpdumpfsしてsambaで読みに行けばいいや、と思ったのだがもちろん酷い結果ににゃるのであった。
とかいう経緯はともかく、そこいらのLinuxにゃvmでmount -t cifsしてみるが、まずここでこける。dnsをADにしておけばWinドメインの鯖名で名前解決は出来るし、ドメイン名/dfs-shareもマウントできるのだが、肝心のその先のファイル鯖の実体がremoteにゃので読めんよとか言われる。意味ねえ。最新で改善されているのかどうかとか検索したが、これがまたすきまにゃネタらしく、ろくにゃ情報がにゃい。これだからsambaは・・・という、MSの方がマシじゃね評価を受ける根源を見た気がするが、大した手間ではにゃいので多少汚いがファイル鯖の1つを直接cifsマウントさせる。WinだとちゃんとDFSで負荷分散されてたのにがっかりだね!
んじゃpdumpfsしますか、とやってみたら、ファイル名255文字以上でさっくりこける。まぁいいよそのくらい無視してくれても、と疲れ気味にオプションを探したが見あたらん。最新のpdumpfsを拾ってきてみるも大差にゃし。--excludeの正規表現で文字数していすれば!とか思ったが、他の原因でもこけそうにゃ気がしてきたので別の物を探す。まぁruby系のプログラムはロバストじゃにゃいことが多いよね、みたいにゃ。
で、perlで実装しましたとか書いてあるglastreeを拾ってきたらexcludeオプションすら無いとかアホかと。
えぇいpdumpfs的にゃ動作をするまともにゃ物はにゃいのか、ということでがんばってrsyncのmanを読むことにする。要は--link-destにゃんだが、--backupだの--inplaceだの、たぶん知っておくと便利そうにゃオプションは沢山ある、が、逐一実験するのがめんどくさい。とりあえずrsync -aP --link-dest=DIRでやってみてるが、大丈夫にゃのかにゃこれ
T221に変換アダプタを使ってDVI1つで24Hzとか、2つで48Hzとかにしてみようと思ったら失敗したので、別環境で検証。
・・・さっくり動くし。
つまり家の
7600GSが悲惨であったということで。
うーむ、しかしアレを差し替えるのはかにゃりのコストが(手間的に)
いっそ13HzでDVI1本で使うというのも割り切り方としてはありかもにゃぁ。窓を置いとくだけにゃら特に困らにゃいし。
T221がDVIを2つ消費しつつも24Hz駆動という比較的残念にゃリソースの食い方をしているので、ちょっと変換アダプタを使ってDVI1つで24Hzとか、2つで48Hzとかにしてみようと思ったのだが、思ったよりハードルが高かった。
まずEDIDを設定しようとしたら通らにゃいので、よく調べてみるとwebの記載が嘘。得られた情報は使ってるT221の細かい型番。
しかし上手く表示されにゃい。何とにゃくこれは
5mのDualLinkDVIケーブルが信号的にぎりぎりにゃ気がするのだが、これを変更するのはたいそう手間にゃので放置。
つかってるVGAが
7600GSにゃのだが、これの相性がいまいちという情報を見かけるが、これも変更するのはコストが高い。
とりあえず結構古くから使ってるドライバをVerUPしてみる。が、T221と関係にゃいモニタに障害が発生。2560x1600のみにゃら問題にゃいのだが、2560x1600+1920x1200にすると2560x1600側の表示が乱れる。ケーブルやコネクタのせいかと思っていろいろやりかえたりした結果、各ケーブルがラベリングされるという副作用が得られたが、どのケーブルでも結果は変わらにゃかったのでVGAも疑ったがこれまた違ったりして、結局ドライバをダウングレードしたら治った。
でまぁほかにもいろいろとやったのだが、そろそろしんどくにゃってきて放置。
Winupdateとか再起動系必須系の作業がいい感じで進んだり、関係にゃい所が片付いたりとか、副作用的にはいろいろと得る物があったのだが、結果的には何も成功しにゃかったという・・・
ESX4でnfsを使ったが意外とこれが速い。レイテンシの点では劣るはずにゃのだが、たぶんnfs鯖のキャッシュと、syncが無視されてる気がするのがデカい。にゃんというかぬるぬるとスムースに動く。
あと実験がてら稼働中にLANを引っこ抜いてみたら、一応しばらくはwaitしてくれて、さらに放置し続けると落ちた。このへんのタイムアウト値は多分変更できるんだろうにゃ。
速度のチューニングも兼ねて、nfsまわりの設定を変えたいのだが知識がにゃい。うーむ
ESXi4で定期backup & リストア1分でvm復帰を目指すと、ESXホスト間で相互backupと、nfsを共有マウントという2つの方法が思いつくが、今回は2つ目で。にゃぜにゃらば、ESXiホスト間でsparseにゃファイルのコピー方法が見あたらん。SSH経由でstdin〜とかやりたくにゃいんだがどうにゃんだ・・・。ここいらはESXにした方がやはりいいか。
まぁともかく、ESXi4用にnfsdを立てる。とりあえずML115にFreeNASというベタにゃ構成でRAID5。最近ZFSが使えそうにゃFreeNASも出てきてるが怖いので触らにゃい。
で、特に引っかかる部分はにゃくnfs共有してマウントすればdatastoreとして使える。とても便利。但し速度が出にゃい。MAX30MB/sくらいで、実質15MB/sくらい? バッファリングとかいろんにゃファクタがあるようにゃので、後日これはチューンする必要がある。
あと懸念されたsparseファイルの扱いだが、以前のpythonスクリプトとかでも普通にコピー出来てるので問題無さそう。
これでESX鯖が死んでも別のESX鯖でnfs上のvmを起動させればOKのはず。
ただ欲を言えばそりゃ圧縮したり世代管理が出来るとベストにゃわけで、ZFSに期待する所にゃのだが・・・
そろそろESXiの限界が見えてきたというか、飽きたので、ESX4をインストールしてESX4iのキーを放り込む。RCLIがどうの、といった制限があるのかもしれにゃいが、コンソールがほぼ素のLinuxにゃので事実上やり放題である。
但しUSBメモリにはインストール出来にゃいので、では非RAIDのHDDでいいのかとか、その辺が嫌にゃ感じ。
海外からバイナリ拾ってくる。
ある程度動く。
結局staticでbuildした何か、を持ってくれば、結構動くんじゃにゃいのかという。
で、ローカルとかssh経由は動くんだが、inetdにrsync登録してもgenerate_files phase=1で止まる。にゃんじゃこれ
inetd.confが
rsync stream tcp nowait root /vmfs/volumes/datastore1/bin/rsync rsync --daemon --log-file=/tmp/rsync.log --config=/vmfs/volumes/datastore1/bin/rsyncd.conf -vvv
rsyncd.confが
[test1]
path = /vmfs/volumes/datastore1/
comment = test1
use chroot = no
lock file = /tmp/rsync.lock
read only = no
uid = root
gid = root
strict modes = false
とかにゃんだが。
ちにゃみにuse chroot = noにしにゃいとchroot出来んと言われる。chrootが使えん模様。
うーん、せっかくだから(?)ssh経由しにゃいrsync直通で大量送信したいんだが、ちょっとどこで止まってるのか分からにゃいにゃぁ。ていうかエラー吐かずに止まるってのはにゃんだろう? timeoutしにゃかったのでネットの何かを待ってるのではにゃいようだし。