2024/10/21(月)ファイルサーバのデータディスクが黄泉の国へ旅立った……

自宅ファイルサーバ(CentOS)で,メインで使っていた4TBのHDDが故障し,中のデータが吹き飛びました*1
多分5年以上10年未満使っていたHDDです.
幸い,今月頭に状態確認をしながらrsyncで別ディスクへバックアップを取っていたのでデータ損失はほぼありませんでしたが,
メインのデータ類の予備がなくなってしまいました.
10年以上(下手すると20年近く)蓄積してきたデータなので,消えたら立ち直れません…….

新しいHDDを購入して作業するのは週末になると思うので,その前にバックアップを別サーバの適当なディスクの空き領域へ作成することにしました.
この作業もrsyncを使っての作業です.このコマンドは引数を間違えると割と大変なことになるので,慎重に検証しながら実行しました.

データ量は3TBくらいですので,終わるのは明日10/22の夕方以降ではないかと思います.

HDDが高くて出費が辛いです……

*1 : 完全に吹き飛んだわけではなく,正常に読み込めたり,一部ディレクトリが消えたり,残っていても中身が空になってしまったり,場所によってまちまちです.

作業メモ

Intel Core-i5 13500なサーバにちょうど3.5TBの空きを見つけたため,そちらにバックアップを作成しました.
たまにしかやらないことなので,メモをしておきます.
sambaの共有フォルダをcifsでマウントした上でrsyncを使うので
前提条件として,
  1. HDDが故障したサーバも,バックアップを置くサーバもrsyncが入っていること.
  2. HDDが故障したサーバは該当のディスク以外は正常であること.
  3. HDDが故障したサーバはsambaのファイルサーバサービスが正常に動いていること.
でしょうか.
  1. cifsマウントを完全に動かすには“cifs-utils”というパッケージが必要なので事前にインストールします.
    # apt install cifs-utils
    
  2. マウントポイントにするディレクトリを作成した後,その場所へマウントします.
    # mkdir pub-back/
    # mount -t cifs -o username=ushi //192.168.XXX.XX/public_back pub-back/
    Password for ushi@//192.168.XXX.XX/public_back:
    # 
    
  3. バックアップを作成するディレクトリを作成します.本例ではバックアップしたいデータのうち写真ファイルを対象にします.
    # mkdir /var/samba/storeroom/sub-disk/so-pub-back/
    # mkdir /var/samba/storeroom/sub-disk/so-pub-back/Pictures
    
  4. rsyncをnohup経由で実行します.以下を実行する前に“-n”オプションもつけて,空動作させた方が安全です(検証作業は端折ってます.).
    # nohup rsync -av --delete --log-file=logfile_pic.txt pub-back/Pictures/ /var/samba/storeroom/sub-disk/so-pub-back/Pictures &
    
    nohupを使うのは作業をしている端末が落ちてしまっても,処理を続行しログも取るようにするためです.
  5. 適宜“jobs”コマンドで実行中かとかを確認すると良いかもしれません.
    # jobs
    [1]+  実行中               nohup rsync -av --delete --log-file=logfile_pic.txt pub-back/Pictures/ /var/samba/storeroom/sub-disk/so-pub-back/Pictures &
    #
    
    のように表示されます.
  6. もし,中止したい場合は,上の場合ジョブ番号が1なので,
    # kill %1
    
    とします.