--- title: ファイルシステムの利用 taxonomy: category: - docs --- [toc] ## ホームディレクトリと大容量ディスク{#home_and_large} すべてのユーザーは,各々のホームディレクトリを利用できます.また,パーソナル、グループ、専用クラスタコースを利用の方は,大容量ディスクを利用できます. パーソナル、グループ、専用クラスタコースで計算に大規模なファイルを扱う場合は,大容量ディスクをご利用ください. ## ホームディレクトリ{#home} ホームディレクトリのパスは,次のようになります. ![](filesystem_04.png) - 利用可能な容量は100GBです.(User Quota) - 「b」の部分は利用者番号の先頭のアルファベットが入ります. ## 大容量ディスク(LARGE){#large} パーソナル、グループ、専用クラスタコースでは,大容量ディスクを利用できます. 大容量ディスクの実体として,/LARGE0と/LARGE1のペア,または/LARGE2と/LARGE3のペアがあり,ユーザやグループごとにどちらかのペアが割り当てられます.<br> どちらのペアが割り当てられているかは,サービスコースの承認通知メールの「ストレージ領域」の項目に記載されています.<br> あるいは,`ls` コマンドで /LARGE0 や /LARGE2 のディレクトリを表示してみて,どちらに自分の利用者ID(パーソナルコースの場合)やグループID(グループコースの場合)のディレクトリがあるかで判断することも可能です. ### パーソナルコースの場合{#personal} パーソナルコースで利用可能な大容量ディスクは,次の構成になっています.(/LARGE0,1ペアの例./LARGE2,3ペアでも同様です) ![](filesystem_02.png) - 利用可能な容量は全部で3TBになります.(Group Quota) - 2つのファイルシステムに分割して構成しています. - 初期設定では、1つの領域をバックアップ領域としています. - バックアップの有無は設定変更が可能です.設定手順は [バックアップ設定](/group#group_backup) をご覧ください。 ### グループコース,専用クラスタの場合{#group} グループコース,専用クラスタで利用可能な大容量ディスクは次の構成になっています.グループ用のディレクトリの配下にユーザごとのディレクトリを作成するなどしてお使いください.(/LARGE0,1ペアの例./LARGE2,3ペアでも同様です) ![](filesystem_03.png) - 利用可能な容量はお申し込みの計算資源に応じたサイズになります. - Group Quotaで容量を制限しています. - 2つのファイルシステムに分割して構成しています. - 大容量ディスク(LARGE)にファイルを書く際は,カレントグループを変更する必要があります.変更方法については, [カレントグループの変更](/filesystem#change_current) をご覧ください. - バックアップ領域は,グループ管理者が設定を変更することで,通常の領域としても利用が可能です.設定手順は [グループの管理者向け情報](/group) をご覧ください. ## バーストバッファ{#burstbuffer} システムA,B,Cは,ファイルアクセスの高速化を目的としたバーストバッファと呼ばれる機構が接続されています. システムAにはCray社のDataWarp,システムB,CにはDDN社のIMEが接続されています. 利用するには申請が必要です. 詳細は下記をご覧ください. * [システムA](/filesystem/datawarp) * [システムB,C](/filesystem/ime) ## 使用状況の確認(quotaコマンド){#quota_command} 現在のディスク使用状況は **quota** コマンドで確認できます. - blocks: 使用中のファイル容量(KB) - quota: ファイル容量/数の制限値(ソフトリミット) - limit: ファイル容量/数の絶対的制限値(ハードリミット) - grace: 制限値越え(ソフトリミット超過)の許容期間 - files: 使用中のファイル数 ### HOMEディレクトリの使用状況{#user_quota} ```nohighlight $ quota -u b59999 Disk quotas for user b59999 (uid 12345): Filesystem blocks quota limit grace files quota limit grace /home 17859980 30000000 31000000 - 69218 600000 700000 - /LARGE0 16 1 1 - 4 1 1 - /LARGE1 0 1 1 - 0 1 1 - ``` ### 大容量ディスク(LARGE)の使用状況確認{#group_quota} LARGEはGroupQuotaで容量を制限しています. quota コマンドに -g オプションを指定して実行してください. ```nohighlight $ quota -g Disk quotas for group gr19999 (gid 19999): Filesystem blocks quota limit grace files quota limit grace /home 151808 0 0 - 22 0 0 - /LARGE0 2088651052 8000000000 8050000000 - 90543 16000000 16100000 - /LARGE1 1967559464 8000000000 8050000000 - 90544 16000000 16100000 - ``` ### グループコースでのファイル作成について{#group_permission} グループコースでは,大容量ディスクの使用量を,グループ所有権が当該グループ名に設定されているファイルをカウントすることで算出しています. 一方,ユーザが作るファイルのグループ所有権は,デフォルトではユーザ名となっています. この状態では,グループのファイルとしてはカウントされません. 利便性のために,この状態でも大容量ディスクにファイルを作成できますが,全ユーザに一律で容量制限(1TB)をかけております. 大容量ディスクでグループ所有権がユーザ名となっているファイルの総量を確認するには,`quota -g`コマンドを使用します. ```nohighlight $ quota -g (中略) Disk quotas for grp w00001 (gid 00001): Filesystem blocks quota limit grace files quota limit grace /home 6758940 0 0 - 87549 0 0 - /LARGE0 1112134124 1000000000 1050000000 - 3018 1000000 1100000 - ``` この例では,w00001ユーザについて,グループ所有権がユーザ名となっているファイルがLARGE0にどれだけ置かれているかが表示されています. blocksが既にquotaを超過しているため,これ以上グループ所有権がユーザ名のファイルは置けない状況です. 大容量ディスクでは,ファイルをグループ権限で作成してください. グループ権限でファイルなどを作成する場合は, [newgrp](#change_current) コマンドでカレントグループを変更してから操作を行ってください. ## カレントグループの変更{#change_current} グループコース,専用クラスタを利用する場合,大容量ディスク(LARGE)での作業や,グループ権限でファイルなどを作成したい場合には, newgrp コマンドでカレントグループを変更してから操作を行ってください. ```nohighlight ## 現在のUID、GIDおよび所属グループの確認 (番号は一例です) $ id uid=59999(b59999) gid=59999(b59999) groups=19999(gr19999),59999(b59999) ## カレントグループをgr19999に変更 $ newgrp - gr19999 $ id uid=59999(b59999) gid=19999(gr19999) groups=19999(gr19999),59999(b59999) ``` また,ログイン時のデフォルトグループを変更する chdefgrp コマンドも提供しています. ```nohighlight ## ログイン時のグループをgr19999に変更 $ chdefgrp gr19999 ``` ### newgrp使用時の環境変数について{#newgrp_env} newgrpコマンドは,`newgrp gr19999`のように,グループ名をそのまま打つと,打った後の新しいグループの環境には環境変数LD_LIBRARY_PATHが引き継がれません. 一方,`newgrp - gr19999`のようにハイフンをつけることで,環境変数LD_LIBRARY_PATHとしてログイン時の初期値が再設定されますが,こちらでは環境変数DISPLAYが消えるため,Exceed onDemandで接続している場合に問題が生じます. そこで,newgrpを実行する前にロードしていたモジュールによって設定されていた環境変数を再設定するためのコマンドとして,**reload_module**コマンドを用意しております. newgrpコマンドを打った後に,`reload_module`を打つことで利用できます. newgrp後にLD_LIBRARY_PATHが消えてお困りの場合や,Exceed onDemandで接続していてnewgrpを行いたい場合に便利です. なお,ログイン後に自分で LD_LIBRARY_PATH に追加したパラメータは再設定されませんのでご注意ください. 使用例: ```nohighlight $ echo $LD_LIBRARY_PATH /opt/app/intel/impi/2017.2.174/intel64/lib:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/tbb/lib/intel64/gcc4.4:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/mkl/lib/intel64:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/compiler/lib/intel64:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/ipp/../compiler/lib/intel64:/opt/intel/mic/coi/host-linux-release/lib:/opt/intel/mic/myo/lib:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/mpirt/lib/intel64:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/ipp/lib/intel64:/opt/cray/lib64: $ newgrp gr19999 $ echo $LD_LIBRARY_PATH /opt/cray/lib64: ← 中身がクリアされてしまっている $ reload_module $ echo $LD_LIBRARY_PATH /opt/app/intel/impi/2017.2.174/intel64/lib:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/tbb/lib/intel64/gcc4.4:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/mkl/lib/intel64:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/compiler/lib/intel64:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/ipp/../compiler/lib/intel64:/opt/intel/mic/coi/host-linux-release/lib:/opt/intel/mic/myo/lib:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/mpirt/lib/intel64:/opt/app/intel/compilers_and_libraries_2017.2.174/linux/ipp/lib/intel64:/opt/cray/lib64: ``` ### chdefgrpコマンドの注意点{#chdefgrp} - このコマンドにより,システムA,B,Cすべてのデフォルトグループが変更されます. - 変更の反映には10分ほどの時間が必要です. ## ファイルI/O{#file_io} ### Lustreストライピングの設定{#stripe} Lustreは並列のファイルシステムで,複数のディスクデバイスやI/Oサーバを論理的に束ねて,ひとつのファイルシステムを構成しています.デフォルトの状態では,ストライピングは行わない設定になっています.ストライピングの設定を行うことで,シングルプロセス―シングルファイルI/Oで,複数のディスクデバイスに分散させることで高速化できる場合があります. **ストライプ設定** ・例)st04(ファイル名)のストライピング設定変更(4WAYストライピング) ```nohighlight $ lfs setstripe -s 1048576 -o -1 -c 4 st04 ``` |オプション名 |説明| |-|-| |-c |ストライプ数,ストライプ幅を指定します.| |-o |オフセットを指定します.| |-s |ストライピングサイズを指定します.| **ストライプ設定表示** ・例)st04(ファイル名)のストライピング設定表示 ```nohighlight $ lfs getstripe -v st04 ```