https://docs.oracle.com/ja-jp/iaas/Content/File/home.htm
https://www.oracle.com/jp/cloud/storage/pricing/
https://oracle-japan.github.io/ocitutorials/beginners/using-file-storage/
¥42.00 1か月あたりのギガバイトストレージ容量
-- 1. 接続テスト用インスタンス(OL9)作成
oci compute instance launch \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--subnet-id ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--assign-public-ip true \
--boot-volume-size-in-gbs 50 \
--display-name vm01 \
--fault-domain FAULT-DOMAIN-1 \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--shape VM.Standard.E2.1 \
--ssh-authorized-keys-file "$HOME/.ssh/id_rsa.pub"
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
-- 2. マウント・ターゲットの作成
oci fs mount-target list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs mount-target create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--subnet-id ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name mt01
-- 3. ファイル・システムの作成
oci fs file-system list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs file-system create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--display-name fs01
-- 4. エクスポート・パスの作成
oci fs export-set list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs export list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"path":"path","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs export create \
--export-set-id ocid1.exportset.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--file-system-id ocid1.filesystem.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--path "/fs01"
-- 5. VCNのセキュリティリストの設定
NFS通信に必要な TCP の 111、2048、2049、2050 番ポートと、UDPの 111、2048番ポートの通信を許可します。
下記のように修正して、Terraform apply
vim main.tf
resource "oci_core_security_list" "sl01" {
#Required
compartment_id = oci_identity_compartment.cmp01.id
vcn_id = oci_core_vcn.vcn01.id
#Optional
display_name = "sl01"
egress_security_rules {
destination = "0.0.0.0/0"
protocol = "all"
stateless = false
}
ingress_security_rules {
protocol = "6"
source = "0.0.0.0/0"
stateless = false
tcp_options {
max = 22
min = 22
}
}
ingress_security_rules {
protocol = "6"
source = "10.0.1.0/24"
stateless = false
tcp_options {
max = 111
min = 111
}
}
ingress_security_rules {
protocol = "6"
source = "10.0.1.0/24"
stateless = false
tcp_options {
max = 2050
min = 2048
}
}
ingress_security_rules {
protocol = "17"
source = "10.0.1.0/24"
stateless = false
udp_options {
max = 111
min = 111
}
}
ingress_security_rules {
protocol = "17"
source = "10.0.1.0/24"
stateless = false
udp_options {
max = 2050
min = 2048
}
}
}
terraform apply -auto-approve
-- 6. ファイルシステムのマウント
OL9で実施
ssh -i $HOME/.ssh/id_rsa opc@192.0.2.1
sudo su -
dnf -y install nfs-utils
mkdir -p /mnt/fs01
mount 10.0.1.114:/fs01 /mnt/fs01
df -h
-- 7. スナップショットの作成
https://docs.oracle.com/ja-jp/iaas/Content/File/Tasks/create-snapshot-unix-instance.htm
-- 7.1 Unixコマンドによる方法
OL9で実施
cd /mnt/fs01
touch testfile
ls
mkdir ./.snapshot/snap01
rm testfile
ls
ls .snapshot/snap01
cp .snapshot/snap01/testfile .
ls
-- 7.2 CLIによる方法
oci fs snapshot list \
--file-system-id ocid1.filesystem.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"name":"name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs snapshot create \
--file-system-id ocid1.filesystem.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--name "snap02"
→ OL9に「/mnt/fs01/.snapshot/snap02」が生成
ls -l /mnt/fs01/.snapshot/snap02
-- 8. クリーンアップ
スナップショットの削除
oci fs snapshot list \
--file-system-id ocid1.filesystem.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"name":"name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs snapshot delete \
--snapshot-id ocid1.snapshot.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
oci fs snapshot delete \
--snapshot-id ocid1.snapshot.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
エクスポート・パスの削除
oci fs export list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"path":"path","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs export delete \
--export-id ocid1.export.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
ファイル・システムの削除
oci fs file-system list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs file-system delete \
--file-system-id ocid1.filesystem.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
マウント・ターゲットの削除
oci fs mount-target list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci fs mount-target delete \
--mount-target-id ocid1.mounttarget.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
インスタンスの削除
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data[].{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci compute instance terminate \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force