$HOMEにcryoなるフォルダを用意して
setfacl -m user:cryosparc:rx $HOME
setfacl -m user:cryosparc:rx $HOME/cryo
setfacl -dm user:cryosparc:rxw $HOME/cryo
setfacl -dm user:$USER:rxw $HOME/cryo
とcryoSPARCサービスの稼働ユーザcryosparcに書き込み権限を与える. そして解析を進めていけばどんどん $HOME のサイズは当然大きくなる.
LVMやzfs、btrfs、cephらを駆使しつつ $HOME を単一ボリュームとして大きくできるが、
別のボリュームにも移したい事がある.
例えば
/home/$USER
から
/home2/$USER
にとか.
ここではそのようなデータ移動について記載します
cryoSPARCでは「project directory」と称して1つのディレクトリ内に解析結果を置いている.
その1つの「project directory」の中に複数の「Workspace」が置かれる
cryoSPARC 3とかなら「P1」「P2」とかでしょうか. 最近では「CS-<プロジェクト名>」になってきてます.
同一インスタンス内での移動は
これで別の場所にプロジェクト ディレクトリが移動できます.
注意点としては、移動先のフォルダがcryoSPARCサービスで参照可能で書き込み権限があるかでしょうか.
画面を用いて説明すれば、異動対象のプロジェクトを選択して、右側にある「...」をクリックしてメニューを表示させます. そこで「Archive Project」を選びます
その後、OKを選択して
最終確認画面に移ります. そこでこのプロジェクトのIDを入力して「Archive」を押下します. これでフォルダがアーカイブモードになりました.
cryoSPARC画面はそのままプロジェクトは残ってますが、「Archived」になってます.
次に、実際のファイルシステム側での作業となります.
今回は $HOME/cryo から $HOME/cryo2 へ移動を想定します. なので
mkdir $HOME/cryo2
setfacl -m user:cryosparc:rx $HOME/cryo2
setfacl -dm user:cryosparc:rxw $HOME/cryo2
mv $HOME/cryo/CS-rc-sample-run $HOME/cryo2/
で移動させます.
っで最後にまたcryoSPARC画面にてファイルシステムでデータを移動させても残っているプロジェクトの右側の「...」をクリックして「Unarchive Project」を選びます.
OKかの選択を経て
移動させたデータの場所を指定します。ここではフォルダ名を指定するだけです。そしてUnarchiveを押下します
これで移動は完了です
これは同一のインスタンス. 同じcryoSPARCデータベース内での実ファイルの移動を行う際のお話. 次は、別のインスタンス、他のcryoSPARCサービスへの移動のお話になります
別のインスタンスへの移動は
で行えます。この際数字番号な「P1」「P2」とかの数字は異なるみたい.
今あるプロジェクトのリスト
cryosparcm cli "list_projects()" | sed "s/'/\"/g" | sed "s/False/false/g" |sed "s/True/true/g" | jq -r |less
cryosparcm cli "list_projects()" | sed "s/'/\"/g" | sed "s/False/false/g" |sed "s/True/true/g" | jq -r '.[] | [.uid, .project_dir, .title]|@csv'
で閲覧可能. 結果はこんな感じかな
"P1","/home/cryosparc/P1","sample"
"P2","/home/cryosparc/P2","ABC"
っでこれをdetachの場合は「cryosparcm cli "detach_project('P1')"」とします。これで「/home/cryosparc/P1」は他のインスタンス、他のマシンのインスタンスに移せます
移した後でのatacheは「attach_project(owner_user_id: str, abs_path_export_project_dir: str)」とある. owner_user_id値は「cryosparcm listusers」で表示されるIDです。英数字の24文字かな.
なので
cryosparcm cli "attach_project('64c2f47e09e87fxxxxxxxxxx', '/cryo/P1')
とかでしょうか.
以上は detach-attachの場合。
前段の archive-unarchive は同一マシン内のでフォルダ移動です。「archive_project(project_uid: str)」と「unarchive_project(project_uid: str, abs_path_to_project_dir: str)」なので
cryosparcm cli "archive_project('P1')"
<フォルダのcopy>
cryosparcm cli "unarchive_project('64c2f47e09e87fyyyyyyyyyy','/data/P1')"
でしょうか.