2019/10/05
gmirrorの使い方
ぐぐってもイマイチぴんとこなかったのでまとめ。

■RAID グループから HDD を外したい
RAID グループ (ここでは mirror0) からなんらかの理由でディスクを外す必要があったら remove を使用する。

まずは状態確認。
% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada1 (ACTIVE)
                          ada2 (ACTIVE)
mirror0 からディスクを外す。
% sudo gmirror remove mirror0 ada1

% sudo gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2 (ACTIVE)
※ada1 が消えた。

% sudo gmirror dump ada1
Can't read metadata from ada1: Invalid argument.
gmirror: Not fully done.
※ada1 に gmirror のメタデータが残っていないことを確認。
この状態では ada1 のディスクは ada2 と同期が取れているため、ぶっちゃけバックアップドライブとして保管しておいても良い。

新しいディスクを追加する場合は
% sudo gmirror insert -v mirror0 ada1
Done.

sudo gmirror status
          Name    Status  Components
mirror/mirror0  DEGRADED  ada2 (ACTIVE)
                          ada1 (STALE)
追加した ada1 が STALE になっているので、ACTIVE な ada2 からデータを貰うことにする。
% sudo gmirror rebuild -v mirror0 ada1 
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  DEGRADED  ada2 (ACTIVE)
                          ada1 (SYNCHRONIZING, 0%)

ここで注意する点は、指定するディスクを間違えないこと。
rebuild で指定するディスクは「あとから追加した (現在 ACTIVE ではない) ディスク」を指定すること。

■gmirror insert 出来なかったら?
gmirror insert で新しいディスクを追加しようとしたら
gmirror: Not all disks connected.
というエラーが出た場合は、落ち着いて forget を使用しよう。
% sudo gmirror forget -v mirror0
Done.

% sudo gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2 (ACTIVE)
これで新しいディスクを追加できるようになる。

■パーティショニングスキームにGPTを使ってるドライブでmirrorしたら中身が消えた!
慌てずgmirror destroyしてパーティションを指定してミラーを作りましょう。
% sudo gmirror label -v mirror0 ada4p1 

最終:2019/10/09 00:56:23 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:
gmirroで組んでいたRAIDがクラッシュ
10月4日(金)の夜に特大の雷により瞬停、その影響でサーバーが再起動してしまったが、その後に gmirro の RAID-1 が勝手にリビルドしていた。
ここまではよかったのだが、不幸にもアクティブな HDD は不良セクタが発生してしまったディスクで、無事な HDD がリビルド対象になってしまっていた。
それに気がついたのがしばらくしてからだったので慌てて止めたが、途中でリビルドを止めたのでどこがどうなっているかわからないのが現状という状態。

予備の HDD は以前瞬停を食らったときに買ってきていた 1TB の HDD が有ったのでそれを使ったのだが、どうもその時に使った HDD で RAID-1 が組めない。
普通なら
# sudo gmirror clear ada2
とかすればメタデータを消去できるのだが今回はダメ。
更にはこの状態で
# gmirror label -v mirror0 ada1
としても「mirror0 は既に使われてるで」とエラーが出て他の名前でしか組めない。
おかしいと思って
# gmirror dump ada1
としてみると、どうも過去に gmirror で組んだ RAID-1 のメタデータが残ったままになっている。

そこで、loader.conf で自動的にロードされている geom_mirror を一旦止めてシングルユーザーモードで起動。
するとなぜかメタデータが消えたので
# gmirror load -v
でモジュールをロードして
# gmirror label -v mirror0 ada1
したら無事に RAID-1 を組む準備が出来た。

あとは
# gmirror insert -v mirror0 ada2
でディスクを追加したら勝手にリビルドが始まるのでそのまま放置。

この後は停電時の再起動で勝手にリビルドするのが困るので、
# gmirror configure -F -v mirror0
で勝手にリビルドするのを止める。
止まったかどうかについては
gmirror dump ada1
Metadata on ada1:
     magic: GEOM::MIRROR
   version: 4
      name: mirror0
       mid: 239193923
       did: 779873358
       all: 2
     genid: 0
    syncid: 1
  priority: 0
     slice: 4096
   balance: load
 mediasize: 500107861504
sectorsize: 512
syncoffset: 0
    mflags: NOFAILSYNC 
    dflags: NONE
hcprovider:
  provsize: 1000204886016
  MD5 hash: 6ebcb89bc3fd056f5feda8878f2707ac
で確認出来る。

ちなみに新しいディスクを insert すると勝手にリビルドが始まるが、自身で rebuild を明示的に指示してリビルドを行う、つまり勝手にリビルドを行わせない場合は "-n" オプションを付ける。
 # gmirror configure -n -v mirror0
 # gmirror dump ada1
(省略)
    syncoffset: 0
    mflags: NOAUTOSYNC 
    dflags: NONE

最終:2019/10/05 20:56:02 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:
QRコード
携帯サイト試験運用
https://griffonworks.net/nikki/cgi-bin/k.cgi
1行板

リンク
備忘録
  • 無し
物欲リスト
  • Canon RF50mm F1.2L USM
  • SIGMA 20mm F1.4 EF Art
  • ニンバス チヌーク
  • OCB-1 ST II
  • Cayin N3Ultra, N6ii DAP/A01(AKM) / Astell&Kern SA700, KANN ALPHA (中古)
ツーリング ドライブ兼野外撮影予定リスト