SHIROKANE ホームディスクの快適な利用とファイル整理のお願い
SHIROKANE ホームディスクをご利用の皆様、日頃から大量のデータを扱われる中で、 ホームディスクのファイル数が増えすぎてはいませんか? 数の多いファイルは、システム全体の負荷につながるだけでなく、 ご自身の作業効率を低下させます。
ファイル数には上限があります
SHIROKANE のホームディスクでは、グループごとにディスク容量だけでなく、 作成可能なファイル/ディレクトリ数 (i-node 数) にも上限が設定されています。
上限に達すると、ディスク容量に空きがあっても新しいファイルの作成や書き込みができなくなります。 解析ジョブが途中でエラー終了する原因となりますので、日頃からファイル数を意識した整理が重要です。 なお、コース契約やオプション契約によっては、アーカイブディスクにデータを移動させることも可能です。
- 参考: アーカイブディスクについて
大量の小ファイルによるシステム負荷と作業効率への影響
SHIROKANE のホームディスクで採用されている Lustre ファイルシステムでは、 1 つのディレクトリに 5,000 ファイル以上あることは、 ファイル管理情報 (メタデータ) の処理に過度な負荷をかけることになり、推奨されません。
大量の小さなファイルに対して検索や一覧表示を行うと、メタデータサーバーへの通信が増大し、ファイルシステム全体の性能低下を招きます。 例えば ls -la の実行時間は、1,000 ファイルであれば 1 ファイルあたり約 64 マイクロ秒で済みますが、125,000 ファイルになると 1 ファイルあたり約 844 マイクロ秒と、13 倍以上の時間を要します。
ファイルが増大することで ls や find といった基本コマンドの実行にも時間を要することになり、 ご自身の解析作業の効率も悪化します。 さらに、VS Code や Jupyter などのツールはバックグラウンドで 自動的にファイルスキャンや Git ステータス確認を行うため、 ファイル数が多いと意図せずディスク I/O に負荷をかけてしまう可能性もあります。
整理方法 1:不要ファイル削除とアクセスが無いファイル (ディレクトリ) を表示する方法
研究データを適切に整理しておくことで、自分自身や他の人がデータを見つけやすく、再利用しやすくなります。 不要なファイルがあればまず削除することのご検討をお願いいたします。
- 参考: rm コマンド
また、一定の期間、アクセスが無いファイル (ディレクトリ) を表示する方法として lfs find コマンドのオプションがあります。オプションは以下のものがあります。
lfs find /対象ディレクトリ -type f -atime +30
- -type f : ファイルのみ
- -mtime Modification time(更新日時)ファイル内容が変更された日時
- -atime Access time(アクセス日時)ファイルが読み込まれた日時
- -ctime Change time(変更日時)inodeが変更された日時(パーミッション変更等)
- -atime +30 : 30日より前
- -atime 30 : ちょうど30日前
- -atime -30 : 30日以内
整理方法 2:tar コマンドによるアーカイブ化
ファイルを残す必要がある場合はファイルを 1 つのファイルにまとめるようご検討ください。1 つのアーカイブファイルにまとめることで、ファイル数を劇的に削減できます。
tar コマンドの活用例
ディレクトリをまるごと 1 つのファイルにまとめ、ついでに圧縮する場合
$ tar -cvzf archive_name.tar.gz directory_name/
- 主なオプション
- c : 作成
- x : 展開
- v : 詳細表示
- f : ファイル名指定
- z : gzip圧縮
利用上の注意点 数十 TB におよぶ巨大な tar ファイルは作成せず、 数百 GB 〜 数 TB 程度に分割して作成することを推奨します。 詳細な使用方法は、スパコン Wiki の逆引きコマンド集をご確認ください。
- 参考: アーカイブ・圧縮 (tar)
現在のファイル使用数を確認する方法
ご自身の所属グループが上限に対してどの程度ファイル数を消費しているかは、以下のコマンドで確認可能です。
$ lfsq
- 参考: lfsq コマンド
特定のディレクトリ配下のファイル数をカウントする場合は、以下のコマンドを参考にしてください。
$ lfs find /対象ディレクトリ -type f -print0 | tr -cd '\0' | wc -c