ストレージとファイル操作¶
最終更新日:2025年8月27日
ストレージの種類と利用方法¶
玄界では以下のストレージが利用可能です。
大容量ストレージ¶
利用者のホームディレクトリおよびグループ内の共有ディレクトリとして利用するストレージ領域です。
玄界の全ての計算ノードとログインノードから以下のパスで参照できます。
- ホームディレクトリ
/home/グループ名/ユーザ名
- グループ内共有ディレクトリ
/home/グループ名/share
この他に、NextCloudで外部に公開するディレクトリも大容量ストレージ上に配置されます。
大容量ストレージの使用可能容量はグループ単位で制限されます。
グループの利用可能容量として、基本料金で 1TBが提供されます。
さらに、容量の追加を申請することにより利用可能容量を増やすことができます。
容量の追加は以下のポータルで申し込んでください。
https://genkai-portal.hpc.kyushu-u.ac.jp/user-portal/
大容量ストレージ内に新規ファイルを作成する際や既存ファイルに追記する際、
グループ内の全ユーザのファイルの合計使用量がその時点でのグループの大容量ストレージの契約容量を超える場合は、その処理が途中で強制終了されます。
大容量ストレージのファイルは、ユーザアカウントの契約期間終了後に削除されます。
年度末に次年度への継続利用を申請したユーザのファイルは年度をまたいで利用することが可能です。
高速ストレージ¶
高速なファイルアクセスを必要とするプログラムのためのストレージ領域です。
特にファイルへのアクセス頻度が高いアプリケーションで、性能向上が期待できます。
この領域の利用を希望する場合、以下のポータルで申し込んでください。
https://genkai-portal.hpc.kyushu-u.ac.jp/user-portal/
利用が承認されると、玄界の全ての計算ノードとログインノードから以下のパスで参照できます。
/fast/グループ名
なお、このディレクトリは ${GENKAI_FAST_DIR} という環境変数でも指定できます。
また、このディレクトリはグループ内の全ユーザが読み書き可能です。
高速ストレージ内に新規ファイルを作成する際や既存ファイルに追記する際、
グループ内の全ユーザのファイルの合計使用量がその時点でのグループの高速ストレージの契約容量を超える場合は、その処理が途中で強制終了されます。
高速ストレージのファイルは、高速ストレージ利用の契約期間終了後に削除されます。
年度末に次年度への継続利用を申請したユーザのファイルは年度をまたいで利用することが可能です。
ローカルSSD¶
玄界のノードグループBおよびノードグループCの各計算ノードに搭載されているSSD上のストレージ領域です。
これらのSSDは、ジョブから自由に読み書きできるフリーアクセス領域と、玄界のファイルシステムが一時的にファイルを保存する読み出し専用のキャッシュ領域の二つの領域を持っています。
フリーアクセス領域の利用法¶
ノードグループBおよびノードグループCでは、ジョブの実行開始時にそのジョブが使用する各ノードのローカルSSD上に、フリーアクセス領域として /ssd/${PJM_JOBID} というディレクトリが作成されます。
このディレクトリには、ジョブの実行中、自由にファイルを作成することができます。
なお、このディレクトリはジョブスクリプトの中から ${PJM_SSD_DIR} という環境変数でも指定できます。
例えば、ジョブ内で頻繁に読み出しと書き込みが繰り返されるファイルがある場合、そのファイルを事前にフリーアクセス領域にコピーしておいたり、
ジョブ中でフリーアクセス領域に作成することで、そのファイルを大容量ストレージに置いた場合に比べて読み書きの速度が大幅に向上すると期待できます。
また、ファイルアクセスの大きさや頻度によっては高速ストレージに置いた場合よりも高速になる可能性があります。
フリーアクセス領域を利用するにあたって、事前に利用申請は不要です。
また、フリーアクセス領域を使用することによる追加の負担金は発生しません。
各ノードのフリーアクセス領域の最大容量は以下の通りです。
|
ノードグループ |
フリーアクセス領域の最大容量 |
|---|---|
|
B |
約 6TB |
|
C |
約 7TB |
フリーアクセス領域の利用にあたっての注意¶
- このフリーアクセス領域内のファイルは、ジョブ終了時に自動的に削除されます。必要なファイルはジョブ中でホームディレクトリにコピーしてください。
- フリーアクセス領域のディレクトリやファイルは、ログインノードから参照することができません。また、フリーアクセス領域はそれぞれのノードに独立して作成されるため、同じジョブ内のノード間でも共有できません。
- 上記の容量を超えてフリーアクセス領域内にファイルを作成しようとするとエラーが発生します。
- 1ノード未満のジョブを実行する際、同じノード内の他のジョブもフリーアクセス領域を利用する可能性があります。その場合、ノード内のすべてのジョブがフリーアクセス領域に作成したファイルの合計容量が上記の容量を超えるとエラーが発生します。
キャッシュ領域の利用法¶
ノードグループBおよびノードグループCの各ノードのSSDの一部は、玄界のファイルシステムが読み出し専用のキャッシュ領域として利用します。
各ノードは、大容量ストレージの /home/cache/グループ名/ユーザ名 ディレクトリの下に置かれたファイルを読み出す際、そのファイルを一時的にキャッシュ領域にコピーします。
これにより、そのファイルがキャッシュ領域にある間は、そのファイルからの読み出しが大幅に高速化されます。
なお、このディレクトリは ${GENKAI_CACHE_DIR} という環境変数でも指定できます。
キャッシュ領域の利用にあたっての注意¶
- キャッシュ領域があふれた場合、キャッシュ領域内のファイルのうち、最後の参照から最も時間がたっているファイルを削除して新しいファイルをコピーします。
/home/cache/グループ名/ユーザ名ディレクトリ以外の場所に置かれたファイルは、キャッシュ領域へのコピーの対象とはなりません。キャッシュ領域にコピーさせたいファイルはジョブ投入前にこのディレクトリに置いたうえで、ジョブ内でも、このディレクトリから読み出すように指示する必要があります。- ファイルへの書き込みは、キャッシュ領域へのコピー対象とはなりません。また、キャッシュ領域にコピーされたファイルに対して書き込みが発生すると、整合性を維持するため、そのファイルはキャッシュ領域から削除されます。
/home/cache/グループ名/ユーザ名ディレクトリに置かれたファイルの容量は、大容量ストレージの使用容量に合算されます。すなわち、/home/グループ名、/home/cache/グループ名、/home/nextcloud/グループ名の各ディレクトリ内に置かれたファイルの容量の合計が、そのグループの大容量ストレージの使用容量となります。
バックアップ及び次期システムへの移行¶
玄界のストレージ利用にあたっては、以下の点にご注意ください。
- 玄界のストレージはバックアップされていません。削除されたファイルは復元できませんので、重要なファイルはご自分でバックアップしてください。
- 将来、玄界が次のスーパーコンピュータシステムに更新される際のファイル移行は、今回のITOから玄界へのファイル移行と同様に、利用者ご自身で行っていただきます。
- 通常、玄界の保守期間はストレージ上のファイルも参照できません。NextCloudで公開されたファイルやディレクトリにもアクセスできなくなります。
ファイルの転送方法¶
事前準備¶
まず、以下のページを参照して、事前に鍵ペアの作成と公開鍵の登録を済ませておいてください。
鍵ペアの作成と公開鍵の登録
WinSCP (Windows PC)¶
Windows PCと玄界の間のファイル転送には、無料で入手可能なファイル転送ソフトウェア WinSCPを利用することができます。
WinSCPの入手と利用法¶
以下からファイルをダウンロードし、手順に従ってインストールしてください。
WinSCPの利用法も、このサイトを参考にしてください。
WinSCPから玄界への接続¶
WinSCPの新規接続で以下の項目を入力してください。
- ホスト名:
genkai.hpc.kyushu-u.ac.jp - ポート番号:
22 - ユーザ名: 玄界のユーザID
「設定」ボタンをクリックし、「高度なサイトの設定」を開きます。
左側メニューの SSH → 認証 を選択し、「秘密鍵ファイル」に作成済みの秘密鍵(.ppk)を指定してください。
scpコマンド (Mac, Linux)¶
Macや Linuxと玄界の間のファイル転送には、scpコマンドを利用することができます。
scpコマンドの利用法¶
ターミナルを開き、以下のコマンドでファイルを転送できます。
$ scp -i 秘密鍵ファイルのパス コピー元パス コピー先パス
Enter passphrase for key '秘密鍵': ←パスフレーズ(鍵生成の際に設定したもの)を入力(表示されません)
scpコマンドの実行例¶
例 1
ローカル(MacもしくはLinux)にある local.txtを玄界の /home/aaaa/abc1234/work/ディレクトリへアップロードする。
(玄界のユーザ名が abc1234であり、ローカルの秘密鍵がローカルのホーム領域の.ssh/genkai_rsaにある場合)
$ scp -i ~/.ssh/genkai_rsa ./local.txt abc1234@genkai.hpc.kyushu-u.ac.jp:/home/aaaa/abc1234/work/
例 2
玄界の/home/aaaa/abc1234/work/remote.txtをローカルの現在のディレクトリにダウンロードする。
(玄界のユーザ名が abc1234であり、ローカルの秘密鍵がローカルのホーム領域の.ssh/genkai_rsaにある場合)
$ scp -i ~/.ssh/genkai_rsa abc1234@genkai.hpc.kyushu-u.ac.jp:/home/aaaa/abc1234/remote.txt ./
NextCloud (Webブラウザなど)¶
NextCloudは、玄界のNextCloud用ストレージ領域上のディレクトリやファイルにWebブラウザなどを利用してアクセス可能とするソフトウェアです。
NextCloudの利用法はこちらを参照してください。
ストレージの使用状況と上限値¶
大容量ストレージ、高速ストレージとも、
ストレージの使用量と、作成できるファイル数に上限があります。
玄界のストレージの使用状況はログインノードで以下のコマンドにより確認できます。
$ show_quota
出力される内容は以下の通りです。
|
項目 |
意味 |
|---|---|
|
Filesystem |
ストレージの種類(/home: 大容量ストレージ、/fast: 高速ストレージ) |
|
UsedSize[GB] |
現在のストレージ使用量 (GB) |
|
LimitSize[GB] |
ストレージ使用量上限 (GB) |
|
UsedFiles |
現在のファイル数 |
|
LimitFiles |
ファイル数上限 |
show_quotaの出力例
$ show_quota
Filesystem UsedSize[GB] LimitSize[GB] UsedFiles LimitFiles
/home 3283 11264 32362 9900000
/fast 140 2048 2 34000000
なお、大容量ストレージ、高速ストレージとも、一つのディレクトリ内に作成可能なファイル数に上限があります。
この上限値はファイル名の長さに依存し、最小で約 4000000個、最大で約 12000000個です。
上限を超えてファイルを作成しようとした場合、"No space left on device"というエラーが発生します。
ユーザ間でファイルを共有する方法¶
グループ内共有ディレクトリ¶
同じグループ内のユーザは、以下のディレクトリ内のファイルを共有できます。
/home/グループ名/share
なお、特定のファイルについて、別のグループのユーザにアクセスを許可したい場合や、
同じグループ内でも特定のユーザにのみアクセスを許可したい場合は、
次の setfaclコマンドを利用してアクセス権を個別に設定してください。
setfaclコマンド¶
setfaclコマンドは、任意のユーザやグループに対して、
任意のファイルやディレクトリへのアクセス権を設定するものです。
これにより、例えば別のグループのユーザに対しても、
ファイルの読み書きを許可することができます。
基本的な利用方法¶
setfaclコマンドの利用法は以下の通りです。
$ setfacl オプション ファイルまたはディレクトリのパス ...
特定のユーザにアクセス権を与える場合、オプションとして以下を指定します。
(特定のグループにアクセス権を与える場合、u:ユーザ名 を g:グループ名に変更します。)
-m u:ユーザ名:アクセス権
ここでアクセス権には r (読み出し権)、w (書き込み権)、x (実行権) を指定できます。
例えばアクセス権に rw を指定すると、読み出し権と書き込み権を与えます。
なお、実行権は、対象がファイルの場合はそのファイルをコマンドとして実行する権利、
対象がディレクトリの場合はそのディレクトリ内に移動する権利をそれぞれ表します。
setfaclコマンドの対象がディレクトリの場合、-R オプションを付加することで、
そのディレクトリ以下の全てのファイルとディレクトリのアクセス権を設定できます。
また、あるディレクトリに対して、
-dオプションでデフォルトアクセス権を設定することができます。
この場合、それ以降そのディレクトリ内に作成されるファイルやディレクトリのアクセス権が、
このデフォルトアクセス権に設定されます。
なお、このデフォルトアクセス権は、そのディレクトリ自身のアクセス権とは別に設定されます。
現在のアクセス権の状況は以下で確認することができます。
$ getfacl ファイルまたはディレクトリのパス
setfaclコマンドの主なオプション¶
setfaclコマンドの主なオプションは以下の通りです。
|
オプション |
説明 |
|---|---|
|
|
設定内容に記述されたアクセス権を設定 |
|
|
ファイル名で指定されたファイルに記述されたアクセス権を設定 |
|
|
設定内容に記述されたアクセス権を除去 |
|
|
ファイル名で指定されたファイルに記述されたアクセス権を除去 |
|
|
setfaclで設定された全てのアクセス権を除去 |
|
|
指定したディレクトリ及びそれ以下の全てのファイルとディレクトリのアクセス権を設定 |
|
|
指定したディレクトリのデフォルトアクセス権を設定 |
|
|
指定したディレクトリのデフォルトアクセス権を除去 |
利用例¶
例 1
ユーザ abcd1234に対してファイルtest.txtの読み書きを許可する。
$ setfacl -m u:abcd1234:rw test.txt
例 2
グループ aaaaに対してディレクトリworkおよびそれ以下の全てのファイルとディレクトリの読み出しと移動(もしくは実行)を許可する。
$ setfacl -R -m g:aaaa:rx work
例 3
ディレクトリworkのデフォルトアクセス権として、ユーザ abcd1234への読み書きを許可する。
$ setfacl -d -m u:abcd1234:rw work
他ユーザへのアクセス許可に関する注意点¶
玄界で setfaclコマンドを使い、他のユーザに対してファイルやディレクトリへのアクセスを許可する際、
以下にご注意ください。
- 何も設定していない状態では、ホームディレクトリ(
/home/グループ名/ユーザ名)の中に入ることが出来るのは、
そのホームディレクトリを所有するユーザのみです。
この状態で、例えばホームディレクトリ内のファイルに対する読み出し権を他のユーザに許可しても、
他のユーザはホームディレクトリ内に入ってこれないため、そのファイルを参照できません。
そのため、ホームディレクトリ内のファイルやディレクトリに対する他のユーザからのアクセスを許可する場合は、
まず許可するユーザに対してsetfaclコマンドでホームディレクトリへの実行権を付与してください。
例えばユーザ abcd1234に対してホームディレクトリへの実行権を付与するには、以下を実行します。
(ここで${HOME}は、そのユーザのホームディレクトリの場所を表す変数です。)
$ setfacl -m u:abcd1234:x ${HOME}
-
グループの共有ディレクトリ(
/home/グループ名/share)は、利用者の権限ではアクセス権を変更できません。
もしグループの共有ディレクトリ内のファイルやディレクトリに対して他のグループのユーザからのアクセスを許可したい場合、
グループの共有ディレクトリのアクセス権変更を窓口に申請してください。問い合わせ窓口 -
ディレクトリへの書き込み権を他のユーザに許可することは推奨しません。
ディレクトリに他のユーザの書き込み権を許可すると、
所有者が異なるファイルが同じディレクトリ内に混在することになります。
そのため、例えば所属するプロジェクトの契約期間が終了するなどして、
それらのファイルの所有者であるユーザが削除された場合、
そのファイルの参照や編集が出来なくなる可能性があります。
そのため玄界では、ディレクトリへのアクセス権として読み出し件と実行権のみを許可することを推奨します。
参考情報¶
- オンラインマニュアル
$ man setfacl
ファイルアクセス性能¶
玄界のストレージの構成¶
玄界の大容量ストレージ、高速ストレージとも、複数のディスク装置によって構成されています。
特に指定しなければ、ファイル単位で複数のディスク装置に分散して格納されます。
そのため、多数のファイルに同時にアクセスする場合は、
複数のディスク装置を使って高速に読み書きが行われます。
ストライプ機能¶
玄界では、ファイルの格納方式としてストライプ方式を選択することもできます。
これは、一つのファイルのデータを複数のディスク装置に分散して格納するものです。
一つの大きなファイルを読み書きする場合は、
こちらのストライプ方式で格納した方がアクセス性能が向上する可能性があります。
ストライプ機能の設定¶
以下のコマンドにより、ディレクトリもしくはファイル単位でストライプ機能を設定できます。
$ lfs setstripe オプション ディレクトリ名またはファイル名
ファイルを指定した場合、その名前の空のファイルが新たに作成され、
指定したストライプ設定が適用されます。
既に存在するファイルを指定するとエラーとなります。
ディレクトリを指定した場合、そのディレクトリ内に新たに作成するファイルに対して、
指定したストライプ設定が適用されます。
lfs setstripeの主なオプションは以下の通りです。
|
オプション |
説明 |
|---|---|
|
|
指定した大きさでファイルを分割しディスク装置に分散して格納する。 (例: |
|
|
指定した数のディスク装置に分散してファイルを格納する。 最大数は、大容量ストレージで 192、高速ストレージで 48。 |
ストライプ機能の設定状況確認¶
現在のストライプ機能の設定状況は以下のコマンドで確認できます。
$ lfs getstripe ディレクトリ名またはファイル名
表示される主な内容は以下の通りです。
|
項目 |
意味 |
|---|---|
|
lmm_stripe_count |
ストライプのサイズ |
|
lmm_stripe_size |
ストライプの装置数 |
参考情報¶
- オンラインマニュアル
$ man lfs-setstripe