0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

乱流の数値計算用にZFSで大容量RAIDを組む

Last updated at Posted at 2021-07-18

はじめに

 数値計算の研究のためには、シミュレーションデータを保存するためのハードディスク容量が必要です。実問題ではレイノルズ数が大きく、数値解析に必要なメッシュ数は1辺あたりに$Re^{3/4}$倍で増えます。空間3方向と時間方向を考えるので、ざっくりというと$Re^3$~$Re^4$くらいのスケールでデータが増えます(時間方向の見積もりは諸説あり)。流れの速さを2倍にすると、10~20倍くらいのデータ量になります。最新の乱流の超高精度数値シミュレーションのデータは、簡単に言うと, 4K動画のスローモーションを4K個保存するくらいの容量が必要です! 乱流などの数値計算を利用した研究のボトルネックはハードディスク容量といっても過言ではありません。

 最近のハードディスクは安く大容量のものが手に入ります。詳しくは --> 息を吹き返すHDD

 この記事では、ZFSのファイルシステムを自分で構築する方法を紹介します。今回は、NAS用の8TBを5台をつなげて、ZFSファイルシステムRAIDZを構築します。デスクトップコンピュータがすでにあれば、15万円くらいの投資です。RAID5と同様に1台冗長性をもたせますので、実容量はだいたい, 8TB $\times $(5-1)台 $\times$ 0.9 $\approx$ 28TBくらいです。 正確な計算はこちら。

ベンダーに頼んでNASを購入すると、同じくらいの容量で50-60万円でしょうか(2021年7月)。構築の手間と、壊れたときの手間を考えると、こちらの方が良いでしょう。突然の停電などで、ファイルシステムが壊れるリスクはZFSの方が低いらしいです。

 RAIDZはハードディスクの1つが壊れてもHDを交換すれば復旧可能なはずです。が、復旧できた経験はありません。壊れても大丈夫な規模で、貴重なデータは別のところにバックアップがあるというスタンスでやります。

リスクを下げるには、新品のNAS用のハードディスクを使ってください。私のものは3年稼働しています。NAS用でない中古HDで作ったRAIDzは1年でだめになりました。バックアップや復旧も考えた上でご利用ください。

手元に余っている古いHDで練習すると良いでしょう。同じ容量のHDをご使用ください。ソフトウェアRAIDなので、ホストコンピュータのメモリも多く積んでおくと良いです。


ハードディスクを取り付けます

 使用するのは普通のタワー型のPCケースです。研究室に眠っている古いPCで良いですがメモリは増設しておくと良いです。
配線はPC内部の空気の流れを妨げないようにきれいに。ハードディスクはやけどするくらい熱くなります。時々、ファンやフィルターの相似をしましょう。ケース前面のファンも必要でしょう.

IMG_0271.jpg

ハード・ディスクのバーコードに赤線が入っているものがZFS用の5台です。
IMG_0273.jpg

 取り付けた後のチェックです。

2TB以上のハードディスクのパーティション管理にはGPTを使います。

# All disk (more than 2TB) should be GPT managed disks. 
$sudo parted -l

で確認します。

##[1] IDでハードディスクを識別します。

$ls -l /dev/disk/by-id

/dev/disk/by-id/ata-WDC_WD40EZRX-22SPEB0_WD-WCC4E3NA1C21 (sda)
/dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K2RL4289 (sdb)
/dev/disk/by-id/ata-WDC_WD40EZRX-22SPEB0_WD-WCC4E5JVYPF2 (sdc)
/dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNK7LD (sdd)
/dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNKAT6 (sde)
 
##[2] ZFSモジュールの読み込み 

$sudo /sbin/modprobe zfs

##[3] RAIDZストレージプールの作成

$sudo zpool create tank raidz /dev/disk/by-id/ata-WDC_WD40EZRX-22SPEB0_WD-WCC4E3NA1C21 /dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K2RL4289 /dev/disk/by-id/ata-WDC_WD40EZRX-22SPEB0_WD-WCC4E5JVYPF2 /dev/disk/by-id/ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNK7LD ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNKAT6 

create を使ってRaidzを構成すると、中のデータは全部消えます。

##[4] データスペースの作成

$sudo zfs create tank/data

##[5] NFSで共有

  • サーバーPC側の設定
$sudo zfs set sharenfs=on tank
$sudo vi /etc/exports
/tank/data [IP addr]/24(rw,async,no_root_squash)
$sudo exportfs -avr
  • クライアントPCからNFSマウント
$showmount -e [IP address]
$sudo mount -t nfs [IP addr]:/tank/data /mnt/($mount_point)

NFS用に各WSのユーザーIDを一致させる必要があります。

ユーザーIDの確認

$id user_name

ユーザーIDの変更

$usermod -u 15001 user_name
$groupmod -g 15001 user_name
$chown -R user_name: /home/user_name 
$chown -R user_name: /tank/data/user_name

PCの再起動後に ZFS ファイルシステムを再度マウントする

#recalling ZFS tank

$sudo zpool list

で探して、見つからなければ、 

$sudo zpool import
pool: tank
id: 10275846496795298111
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

tank ONLINE
ata-WDC_WD20EADS-00R6B0_WD-WCAVY2884985 ONLINE
ata-WDC_WD20EZRX-00DC0B0_WD-WCC300262352 ONLINE
ata-WDC_WD20EZRX-00DC0B0_WD-WCC300319982 ONLINE

pool名 tankが見つかりましたので、以下のようにインポートすればOK.

$sudo zpool import tank

障害発生時

RAIDZはハードディスクの1つが壊れてもHDを交換すれば復旧可能なはずです。
マニュアルを見ながら暇なときにやれば良いです。

$ sudo zpool import    
pool: tank     
id: 10784953625292869930  
state: DEGRADED 
status: One or more devices contain corrupted data. 
action: The pool can be imported despite missing or damaged devices.  The fault tolerance of the pool may be compromised if imported.   
see: http://zfsonlinux.org/msg/ZFS-8000-4J config:
    tank      DEGRADED      raidz1-0                                    
DEGRADED      ata-WDC_WD40EZRX-22SPEB0_WD-WCC4E3NA1C21  
ONLINE        ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K2RL4289  
ONLINE        ata-WDC_WD40EZRX-22SPEB0_WD-WCC4E5JVYPF2  
ONLINE        ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNK7LD  
ONLINE        ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNKAT6  
ONLINE        ata-WDC_WD40EZRZ-22GXCB0_WD-WCC7K4PNKKLH 

とかが出ても、落ち着いて対応。
 至急、バックアップを取るように周知してください。
壊れるまで使えますが、再起動するとマウントできなくなるかも。

バックアップ

 勉強中。というか、まるごとスナップショットを取るくらいなら、ちゃんとしたNASかファイルサーバーを購入してください。壊れるのが前提の一時的な高負荷の処理用です。壊れる前に必死にデータ処理を走らせます。重要なデータはこまめにバックアップを取ります。バックアップ先はより信頼性の高いファイルサーバーもしくは、紙媒体、つまり、ジャーナル論文です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?