[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ある日、ふと気が付くと管理してるWEBサーバのログにエラーが。わー。
どう見てもDISK障害。
見えないファイルも既にかなり。
いきなりトびはしなかったものの、素敵な侵食っぷりです。
ここはひとつ、そのままWEBサーバのDISKが徐々にバカになっていく様子を
ぬるい微笑みで見守る・・・
とかやってると怒られそうなので、
とりあえずtarとrshでくっつけて必要なデータを避難してお引っ越し。
別のマシンを別のとこからパチり、パーティション切って、OS入れて構築しなおしました。
救えたデータは戻しましたが、壊れたデータは泣く泣く再作成です…とほほ。
もうそんなのはゴメンなので、新たなお住まいに変わったWEBサーバの、あんま更新ないという理由でとってなかったらしいシステムバックアップを取ることにしました。
なので、バックアップ手順、主に今回使った「ufsdump」についてのメモ書きをば。
ちなみにWEBサーバはSolaris。ディスクはSCSI。
今回はテープにバックアップデータをとることを前提にします。
何分、なけなしの知識つなぎ合わせてるので、間違ってるとこもあるかもです。
備忘録だし。スイマセン(弱気)
間違ってたらご指摘頂けると助かります。
∥Backup をとる前に
バックアップをとる、とゆうことは、当然戻すことだってあるってことで。
戻す時の事を考えながら、前準備します。
まずは、現在の構成。パーティションはどう分けてるのか。
どこに何が入ってるのか、どれが必要なデータなのか。
これがわかんないと取れない。そして戻せない。
パーティションに関しては format コマンドを使います。
root じゃないと使えないコマンドです。
確認したいDISKを選んで、見たい項目(この場合パーティション。「p」)を選んで
print 「p」 を選ぶと、現在のパーティションを見ることができます。
どこかにコピって、テキトーにメモっとくとよいと思われます。
私はExcelにこっそりまとめました。(何故にこっそり)
df -k とかに対応させて見るとわかりよいです。
リストアする時にも大切になってきます。
∥Backupをとる
まずはどこのデータのバックアップをとるか。
必要分がハッキリしたら、ufsdumpでスライスごとにバックアップをとります。
バックアップのメディアには、今回はテープを使用する、とゆうことを前提に。
そしてそのテープ装置は、直接バックアップをするマシンにつけます。
まずは、バックアップ処理に入る前に、シングルユーザモードになります。
rootでしか使えないので、rootになって。
#init S
マルチでも取れなくもないと思うのですが、何か前マルチで取って、リストア失敗したらしいんで(涙)少なくとも私の環境では、シングルで取った方が確実だと学習。
そしてufsdumpです。
書式としてはこんな感じ。
#ufsdump [option] [テープデバイス] [ダンプするパーティション]
例)#ufsdump -0cf /dev/rmt/0cn /dev/rdsk/c0t0d0s0
●この時のオプションは下記の通り。
「0」
ダンプレベルです。レベル 0 は、filenames で指定したファイルシステム全体の完全バックアップ用。レベル 1 〜 9 は、最後の下位バックアップ以降に変更があったファイルの増分バックアップ用。フルバックアップか、差分かによって使い分けできるという。便利ですね。今回はフルなので0。
「c」
カートリッジテープ、らしいです。ブロッキングファクタを126として、テープ終了が自動検出してくれるもの。ブロッキングファクタってのは、1つの物理レコードに含まれる論理レコードの数…らしい。(らしい、ばっかりかい)
「f」
出力デバイス指定。今回の場合、テープを指します。(/dev/rmt/0cn の部分)
●テープデバイスの指定について。
テープなので、/dev/rmt/0 な感じでよいのですが、テープをどう扱いたいかによって多少記述が異なります。
/dev/rmt/0 dump後、テープが巻き戻る。
/dev/rmt/0n dump後、テープは巻き戻らない。
/dev/rmt/0c ハードウェア圧縮機能が有効。
/dev/rmt/0cn ハードウェア圧縮機能が有効、dump後もテープは巻き戻らない。
こんな感じで、0の後に何をつけるかによって意味合いが変わってきます。
●そしてパーティション(スライス)の指定について。※SCSIのディスク使用。
「c0」 コントローラ
「t0」 ターゲット。SCSI- ID
「d0」 論理ユニット番号
「s0」 パーティション。スライス。
ディスクデバイスは、/dev/dsk と /dev/rdsk にそれぞれ同じものがあって、同じデバイスを示しています。
どういう使われ方をするかによって、どっちを使うかが決まります。
/dev/dsk は、本来の使い方をするときに使用、
/dev/rdskは、ディスク全体を1つのファイルのように扱うときに使用、とか。
●で、毎回毎回コマンド打ったり調べたりもアレなので、シェルにまとめてみます。
私はcshで。(bashもtcshも無いので orz)
#!/bin/csh
#何回も上書きで使うので、テープ巻き戻し指示。
mt -f /dev/rmt/0n rewind
#最初のスライスをバックアップ、巻き戻さない。
ufsdump -0cf /dev/rmt/0cn /dev/rdsk/c0t0d0s0
#その次のスライスをバックアップ、巻き戻さない。
ufsdump -0cf /dev/rmt/0cn /dev/rdsk/c0t0d0s1
#その次のスライスをバックアップ、最後なので巻き戻す。
ufsdump -0cf /dev/rmt/0c /dev/rdsk/c0t0d0s4
こんな感じです。
あと、ネットワーク越しにもdumpできるらしいんですが、
やってみたことない上に、更に自信がないので、ここでは放棄。
因みにリストア時は ufsrestore を使ってやります。
そんな事態にならないよう願うばかり。
よくあること?だけど、つかれた……。
04 | 2025/05 | 06 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
不妊治療を経て、妊婦初体験中。
甘味と刺身が恋しくてたまらない。