7年ぶりにストレージ移行

Bloggerの記事投稿画面が変更になっててますます体裁整えづらくなったのでもう諦めました
あとで自分が読んで理解できればいいやと

概要

なにも困ったこともなく安定して使っていた自宅のストレージでしたが

  • 在宅勤務と打ち合わせのためだけの移動が増えたためノートPC必須になった
  • 何台もPC使いたくない
  • 自宅のデスクトップがwindows7だったのでそろそろやめたい

ということで仕事用に買ったsurface pro 7だけでなんとかしてみようとしたけどなんとかならなくて別の方法にした顛末記です

構成を雑に整理

今まで  2013/12/01 Windows上でのフォルダのミラーリング修正版

  • 自作PC
  • Windows7
  • SATAでHDD複数台接続

やりたかったこと

  • Surface Pro 7
  • Windows10
  • USBで外付けHDD複数台接続

できあがったもの

  • NUC
  • Ubuntu 20.04
  • USBで外付けHDD複数台接続

やりたかったことを諦めるまで

  1. 内蔵HDDをUSB接続できるアダプタ的なものを買ってくる
  2. Surface Pro 7に複数台接続する
  3. 今までのミラーリングスクリプトを実行してみる
  4. 途中でドライブの認識がおかしくなる
  5. ファイルシステム破損
  6. ファイルシステム復旧してみる
  7. データ一部破損
  8. Windows10への信頼を捨てて諦める
こんな感じでした

他にも仕事中にブルースクリーンになったり起動直後に異常に重いことがあったりエクスププローラーフリーズしたりと、どうもWindows10は7と比べると相当ダメOSっぽいですね

Surfaceなのに残念

ストレージに求められてるのはただひたすら安定性なのでこんなんじゃ使えないわけです

会社にある別のPCでもWindows10は重いのでイツになるかわからないけど次に乗り換えるとしたらMacでもいいんじゃないかと思えるくらいにはWindows10は信頼できなくなりました

できあがったものを選んだ理由など

じゃあストレージどうすんの?ってなって選択肢は2つ
  • Windows7マシンをクリーンインストールしてファイルサーバにする
  • 会社においてあるNUCのUbuntuをクリーン(略
こんな理由でNUC/Ubuntuにしました

できあがったものができあがるまで

1. なくなったデータを探してみる

windows10が1台だけじゃなくすべてのHDDをまんべんなくファイルシステム破壊してくれたせいでバックアップ元も先で生きてるデータがズレちゃっていたのでrsyncで削除オプション付きでdryrunしてズレてるファイルを洗い出します

Ubuntu20.04は適当にHDDをUSBで接続するとwindowsで使っていたドライブ名がそのまま認識されていたのでそのままrsyncします(main/mirror)
rsync -acvvn --exclude='core' --exclude=".Trash-*" --log-file=diff_`date "+%Y%m%d_%H%M%S"`.log --delete /media/kmd/main/ /media/kmd/mirror
ログファイルをみてみます
完全同期されてて問題ないファイルは
2021/02/13 23:39:49 [24214] 99_未整理/7_20200926/0.jpg is uptodate
と行の最後に
is uptodate
と付きます
これはそのままで問題ないファイルですがログのほとんどがコレで邪魔なのでこの行は除去します
sed '/ is uptodate$/d' misc_20210219_131924.log > misc_20210219_131924_2.log
すると超すっきりしてコピーできてないファイルだけが残るはず!と思いきや
こんな感じで差分があるわけでもないのにuptodateがついてないファイルがいくつもあります。
2021/02/19 15:14:52 [125127] 99_未整理/7_20200926/1.jpg

2. あやしいデータの比較

なんだかよくわからないけど実は差分がある可能性があるのでmd5で比較してみます
まずはバックアップ元にあるファイルのmd5を出力するためにテキストエディタで正規表現でこんな形に変えます
md5sum "/media/kmd/main/99_未整理/7_20200926/1.jpg"
md5sum "/media/kmd/main/99_未整理/7_20200926/2.jpg"
どうやって変えたのかは忘れてしまいましたが大したことしてないのでまた必要になったら考えることにします
これをshファイルとして保存して実行、出力別ファイルに出力し出来上がったモノがこんな感じ
f13664d14911a137176673357fc96bfc  /media/kmd/main/99_未整理/7_20200926/1.jpg
d41d8cd98f00b204e9800998ecf8427e  /media/kmd/main/99_未整理/7_20200926/2.jpg
これをmd5sumでチェックするためにドライブ名部分をテキストエディタで一括置換
f13664d14911a137176673357fc96bfc  /media/kmd/mirror/99_未整理/7_20200926/1.jpg
d41d8cd98f00b204e9800998ecf8427e  /media/kmd/mirror/99_未整理/7_20200926/2.jpg
そして適当なファイル名(diff_md5sum)で保存してチェック実施
md5sum -c diff_md5sum > diff_md5sum.log
できあがった内容が
/media/kmd/mirror/99_未整理/7_20200926/1.jpg: OK
/media/kmd/mirror/99_未整理/7_20200926/2.jpg: OK
全部差分なし!!
uptodateありなしの違いはなんだかよくわからないけどファイル内容に差分がないならいいかと忘れることにします

3. 差分があったファイルの手動コピー

大した数ではなかったので一つ一つ確認しながらコピーしました
対象ファイルはrysncのログで下記のようなもの
2021/02/19 18:40:24 [125127] >f+++++++++ z99_未整理/7_20200926/3.jpg
2021/02/19 20:36:58 [125127] *deleting   99_未整理/7_20200926/4.jpg
前者は元にはあって先になかったのでコピーしますよ、後者は元になくて先にあるものなので削除しますよ、というもの
今はどちらもないと困るモノなので手動で元から先へ、先から元へとコピーしておきます

そしてdryrunして同じ確認をしてもう差分が一切ないことが確認できました
念の為、ドライブの使用率やファイル数もUbuntuの「ファイル」で確認しましたが一致してたので問題ないはず

今後の運用方法

今のrsyncだとファイルをハッシュ値で比較しているのでとても時間がかかり毎日実行するとずっとrsyncしてる状態になっちゃうので
  1. 週1くらいで気が向いた時に手動でrsync実行
  2. ログをsedでキレイにして確認
をやっていこうと思ってます

おわり

コメント