(191120)(191211)
1.概要
RAID1を用いることにより、HDDのクラッシュが1台のみである内にリカバーすることができる。
但し、クラッシュしたドライブの換装とRAID1のリビルド作業に関する解説記事は一般に乏しい。
2.エンクロージャを用いたRAID1の運用
エンクロージャとして、GS3.5AX2-SU3/Rev2.0 を使用
HDDとして、WD Blue (5400RPM, 4TB)を2台使用
箱に日本語の解説があり、英文マニュアルが同梱されている
2連のDIPスイッチを設定し、プッシュボタンを5秒間押すことによりモードを設定(p.7)
本件では、DIPスイッチをOn|On と設定することにより、RAID1を指定
動作状態は、縦に並んだ一つの電源LED(青)と、二つの動作LED(緑)で表現される
上の緑がHDD1(左側)、下の緑がHDD2(右側)に対応する
(実際の動作)
モード指定後、電源を投入すると三つのLEDが点灯し、緑色二つがすぐに消える
ここでUSB経由でマシンに接続すると、緑色二つが点灯する
マシンのOS機能を用いて、RAID1をNTFS形式でフォーマットする
Windows7/8では、パーティションとしてMBRかGPTかを選択できる。
MBRならばXPにも対応できるが、2TBまで。GPTは4TB可能
LINUXでもGPTに対応。そこでGPTとする
(LEDの表示)
3個のLEDは、点灯・消灯の他に、点滅(緩・急)がある
急点滅は0.3秒おき、緩点滅は2秒おきというが、それほど差が感じられない
切断された状態で消灯、接続された状態で点灯
アクセス状態で急、クラッシュ状態で緩
(これら場合、電源は点灯)
RAID1検証中、再構築中、電源が点滅
この時、ソース急点滅、ターゲット緩点滅
再構築完了後、すべて緩点滅
実際のデータを用いた試行結果)
RAID1の状態で、ノートPCのバックアップを作成
@basicのコピーを作成(約2GB)
この状態で、オフラインとし、エンクロージャからHDD1を抜き去る
HDD1を玄続を用いてPCにUSB接続
バックアップと@basicがあることを確認
HDD1のみ、@basicを削除し、@Androidとその配下をコピー
HDD1をRAID1エンクロージャに戻す
→@basicはなく、@Androidがある
(ここで、HDD2を外して、玄続で内容を見る
→@basicは無くなり、@Androidも無い
(HDD2をエンクロージャに戻す)
表示されている@Androidの配下のファイルを開く
→検証動作を示すLEDの点滅
(再びHDD2を外し単独で調べる)
→アクセスした@Androidのファイルが存在する
小結
タイムスタンプが異なるだけでは再検証は始まらない
アクセスしたファイルが異なる時、新しい方に同期する
換装するドライブがフィーマットされていない場合どうなるか、等について今後の検証課題とする
クラッシュした場合、正常な方を取り外して、バックアップを作成する。
クラッシュした方のHDDを換装する。
正常な方をエンクロージャに戻す。
再構築の動作を開始する(トリガー方法未詳)。
(191121追記)
更なる追試1
RAID1上でバックアップと@Androidが見えている状態から出発
HDD2を外して、玄続でPCにUSB接続
@Androidを削除し、@basicをコピー
HDD2をRaid1に戻す
→バックアップと@Androidが見え、@basicは見えない
(つまり、本処理系においてはHDD1とHDD2は非対称である)
更なる追試2
バックアップと@basicがあるHDD2をスロット1に設置し、HDD1をスロット2に設置する
→認識しない。
この状態で再度USB接続する
→認識し、「問題が見つかりました。修復を...」とのプロンプト
修復(エクスプローラのツール)約1分で完了。
この状態で、RAID1には、バックアップ、@Androi、@basicがある。
@basicにはreadme.txt等は存在するが、サイズが0バイトとなる。
二つのHDDについて、玄続で見る
HDD1: chkdsk
3815317MB 全ディスク領域
85394888KB 6075 個のファイル
HDD2:chkdsk→エラーを検出しました→ツールの修復を実施
3815317MB:全ディスク領域
88679152KB 6075個のファイル
更なる追試3
HDD2のパーティションを削除しエンクロージャに戻す
電源ONで3灯→1灯電源のみ、は同じ
USB接続で3灯となるのも同じ
ドライブがUからDとなった
(特段、再構築動作等は起動しない)
この状態で、HDD2を玄続で見る→パーティションの無い状態のまま
そこで、再びパーティションを切り、フォーマットをかける
RAID1に戻し、コピー操作等を行う。
→長いミラーリングの表示があるが、単独で見るとエラー、修復をかけると消滅する。
更なる追試4
HDD2のパーティションを削除し、RAID1に戻して書き込んでみる。エラーは出るか?
→結果:出ない
考察:恐らく、書き込みは同一セクターに同一内容が書き込まれれば成功扱い
読み出しは、同一セクターが同一内容であれば成功扱い
(違っていれば、HDD1の内容がHDD2の内容にコピーされる)
とすれば、全てのセクターを読み出す処理、または全てのファイルを読み出す処理によりクローニング可能
更なる追試5
>chkdsk/scan d: /r
を実行して、全てのセクターを読み出したときにクローニングが行われるのか?
→結果:約6時間で完了、エラーなし
3815317MB:全ディスク領域
163427652KB:11666個のファイル
2868KB:353個のインデックス
0KB:不良セクター
202335KB:システムで使用中
65536KB:ログファイルが使用
3655520MB:使用可能領域
4096バイト:アロケーションユニットサイズ
976721407個:全アロケーションユニット
935813194個:利用可能アロケーションユニット
ドライブd:には、
@Android
@basic
@e
WindowsImageBackup
の4ディレクトリが存在
3,833,036,636,032バイトの空き領域
ここで、HDD1とHDD2を玄続する。
HDD1:
・・・の4ディレクトリが存在
3,833,036,636,032バイトの空き領域
は、同様。
chkdskの結果
3815317MB:全ディスク領域
163427660KB:11667個のファイル(1個多い)
2872KB:353個のインデックス
0KB:不良セクター
202335KB:システムで使用中
65536KB:ログファイルが使用
4096バイト:アロケーションユニットサイズ
976721407個:全アロケーションユニット
935813191個:利用可能アロケーションユニット(3少ない)
HDD2:
ドライブDととしては認識されない
ディスクの管理をすると、3725.90GBの未割り当て領域となっている
更なる追試6
HDDをフォーマットし、Dドライブとする
その上で、更の状態で、全てのファイルをスキャンする(コピー等)
更なる追試7
RAID1ではホットスワップができるとマニュアル記されている。
電源ONでUSB接続された状態でHDD2を抜くと、緑1だけが点灯した状態になる
ここでHDD2を差すと、リビルドが開始される(青、緑1緩点滅、緑2急点滅)。
また、電源ONでUSB接続された状態でHDD1を抜くと、緑2だけが点灯した状態になる
ここでHDD1を差すと、リビルドが開始される(青、緑1緩点滅、緑2急点滅)。
リビルドが終了すると、3灯共、緩点滅となる。
論理エラー状態のHDDペアを使用
USBに接続された状態で電源ON
→一瞬緑が点灯し消える
しばらくして緑2灯が交互に点灯
その後2灯が点灯した状態で安定
(論理エラーだが、HDD1の内容で利用できる)
HDD2を抜く
→緑1、2が消える
緑1のみが再度点灯し、アクセス可能
しばらくして緑1も消える
ここでHDD2(元の)を刺す
→電源と緑2が3秒サイクルで点灯、緑1が0.3秒サイクルで灯火
(これは、マニュアルに解説されたIDENTITY, HDD2のREBUILD時の表示)
→約12時間程度で完了を示す表示に変化(3灯とも緩点滅)
更なる追試8
追試7でリビルド完了後のHDDペアを使用
USBに接続された状態で電源ON
→一瞬緑が点灯し消える
しばらくして緑2灯が交互に点灯
その後2灯が点灯した状態で安定
HDD1を抜く
→緑1、2が消える
緑2のみが再度点灯し、アクセス可能
しばらくして緑2も消える
ここでHDD1(元の)を刺す(内容は正しい)
→電源と緑1が3秒サイクルで点灯、緑2が0.3秒サイクルで灯火
(これは、マニュアルに解説されたIDENTITY, HDD2のREBUILD時の表示)
→PCがスリープ状態になると、リビルド中の表示が継続しつつ、HDDが回転停止となる。
PCをウェイクしてUSBを再接続すると、しばらく検討後、青が点滅開始し、リビルドを継続する。
リビルド中を示すLED表示は、HDDの回転が停止した休眠中も行われる。
実際のリビルドは休眠中は停止しているらしい。
リビルド中に休眠した状態で、USBを抜くと、電源青だけ点灯となる。
USBを再接続すると、通常の初期プロセス(2緑点灯→点滅)の後にリビルド中の表示に戻る。
しばらくすると、冷却ファンが停止し、またしばらくするとモーターが停止する。
この時、PCからファイルにアクセスしても帰ってこない。
また、時々思いだしたようにモーターが再開する。ファンは再開しない。
モーターが回転している間は、ファイルにアクセスできる。
3815317MB:全ディスク領域
113728KB:6個のファイル
8KB:12個のインデックス
0KB不良セクター
185439KB:システムで使用中
65536KB:ログファイルが使用
3815025MB:使用可能領域
更なる追試9
リビルドの途中で、LED表示のみリビルド中を維持しながらモータが停止する場合がある
そこで、PCからあるファイルにアクセスすると、キャッシュにあるファイル以外すぐに帰って来ない
しかし、しばらくすると帰って来る。その時点ではモータが回っている
そこで、バッチファイルを走らせて、モータが停止せずファイルアクセスをすぐ行う状態を維持
このために、試しに5分おきにchkdskを実行するバッチファイルを走らせる
-------------------
:start
chkdsk d:
timeout /t 300
goto start
-------------------
なお、chkdsk は、大量にファイルがある場合、ディスク破損の懼れがある場合には不適
バッチファイルの制御コマンドは以下のようなものがある
if [not] 文字列1==文字列2 コマンド
goto ラベル
:ラベル
exit
goto :eof と同じ意味
call 別ファイル
call 1ファイル内
→HDD1のリビルドが数時間で終了し、3灯とも緩点滅の状態となる
ここで、USBを脱着すると、通常の接続状態(3灯点灯)の状態となる
小結2
この装置の読み出し動作は、HDD1から行われる。その時、HDD2の同一セクターの内容が異なれば修正される。
この装置の書き込み動作は、HDD1のフォーマットに従って両方ドライブの同一セクターに対して行われる。
従って、HDD2が異なった内容を持っていれば、ファイルシステムの一貫性が失われる。
ミラーリングの内容は、物理的なセクター・トラックの書き込みのみと推測
HDD2の全体フレームが壊れているか未構築の場合には、単独ドライブとして認識ができない
エラー修復を行うと、ミラーされていた情報はすべて削除される
更なる追試10
HDD2をホットスワップしてリビルドを開始する方法で、HDD2のフォーマット状態を変えて見る
HDD2に何もパーティションが無い状態
→HDD1と同じパーティション、フォーマット、ファイル構成に
HDD1とHDD2が異なるパーティション構成
・HDD1:40GBのexFAT, 400GBのNTFS
・HDD2:300GBのNTFS,300GBのNTFS
→HDD1と同じパーティション、フォーマット、ファイル構成に
Q.もし、「事ある毎に」ミラーリングするとなれば、すべてのセクタートラックにアクセスする
ディスクチェック等でどうなるか、試してみる価値があるのでは?
3.RAIDストレージ格納内容
データ
全史料目録と所在地:シンプルなテキストファイル
1.写真
んて、BUはRAID1(300G中6.1G空き)
2.図面スキャン
RAID1
3.衛星画像
RAID1
4.案件別
すら:OurDocuments(300G中45G空き)
5.メール
すら
6.USBメモリ
SATA1
7.DVD
SATA2
開発環境とソース
(1)WEBアプリ:W2012マシン
(2)SIM:VS2005/W8マシン
(3)ECLIPSE:W8マシン
(4)WiX:W7マシン(W10マシン中のオフグリッドHDDで休眠中)
ダウンロードの中に手記多数:同上
(5)WARASI:アルマジロ+ATDE6/W8マシン(黒童USBメモリ中にイメージ、空きが少ない)
(6)温湿度計測データはW8マシンTIFFプロジェクトの中に解析プログラム
(7)ラズパイ:スタンドアロン
4.バックアップ等の処理とコマンドについて
HDDのフォーマット
LinuxのHDDのフォーマットは、ext4, xfsである。
(1) ext4 : 最大1EB/ドアリブ、16TB/ファイル
(2)xfs : CentOS7のデフォルト形式。最大8EB/ドライブ、8EB/ファイル
Windows系のフォーマットも読み書きできる
(3)FAT : 古典的。2GB/ドライブ、2GB/ファイル
(4)FAT32 : 2TB/ドライブ、2GB/ファイル
(5)NTFS : 256TB/ドライブ、16TB/ファイル
命名方法
ドライブ: sda, sdb, sdc ...
パーティション:sda1, sda2, sda3....
コマンド
フォーマット
#mkfs -t ext4 /dev/sdb1
#mkfs -t xfs /dev/sdb2
マウント
#mount /dev/sdb1 /mnt/memory1
#mount /dev/sdb2 /mnt/memory2
一覧
#df -ht ext4
191128現在、ext4形式は、rootとSSDのみ
#df -h ファイルシステム総覧
アーカイブ
$tar -cvzf [アーカイブファイル名] ディレクトリ名
-c:新規
-v:結果表示
-z:gzip圧縮
-f:ファイル名指定
[例:保存先]$tar -cvzf log.tar.gz /var/www/log
現状(191128):media/pi/ELECOM USBHDD/tar配下に、
log.tar.gz 19,888,978
html.tar.gz 516,472
ssd.tar.gz 9,179,472,021
また壊れた禅データも、ELECOM USBHDD/zen配下に