オブジェクト・ストレージに配置したデータをLinuxのOS上から参照する、または、OS上のファイルを簡単にオブジェクト・ストレージに配置できると便利です。
オブジェクト・ストレージにアップロード/ダウンロードを行う方法はいくつかありますが、ここでは、OCIFSユーティリティを使ってOracle Linux 8のインスタンスからオブジェクト・ストレージのバケットをファイルシステムのようにマウントして利用していきたいと思います。
また、以前はOCIFSでは最大50GiBのファイル・サイズまでという制限があったのですが、ドキュメントを見ると最近はオブジェクト・ストレージと同じく最大10TiBのファイル・サイズまで扱えるようになったようです。
前提条件や利用方法、制限事項などは、必ず以下のOCIFSのドキュメントを参照するようにしましょう。
特に以下の点には要注意です。
- OCIFSは共有ファイル・システムではない。OCIFSを使用して同じバケットを複数同時にマウントするとデータの破損の可能性がある。また、バケットがマウントされている間は、コンソール、CLIまたはAPIなどを使ってバケット・オブジェクトを直接変更しないようにする必要がある。
- 実態はあくまでオブジェクト・ストレージであってファイル・システムではないので、以下のような点に注意。
- 通常のファイルとディレクトリのみサポートされる。シンボリック・リンク、物理リンクおよび特殊ファイル(ブロック、文字、fifo、特殊ファイル)はサポートされない
- ファイルシステム上のファイル属性(権限、ユーザーおよびグループの所有権、アクセス/変更/変更時間)は永続的なものではない
- ファイル操作を行う際にローカルのキャッシュ領域を必要とする。(大きなファイル操作が発生する場合はその分ローカル領域も必要)
それでは実際に使ってみます!
前提条件
必要となるリソースを準備しておきます。
-
インスタンス
-
Oracle Linux 8以降が必要です。今回はあらかじめ作成してあるOracle Linux 8のコンピュート・インスタンスを利用します。
-
[opc@tk-inst-ol8 ~]$ cat /etc/oracle-release Oracle Linux Server release 8.10 [opc@tk-inst-ol8 ~]$
-
-
ローカル・ディスク領域
- OCIFSではオブジェクトのキャッシュのためローカル・ディスク領域が必要です。書き込み、読み取り対象となるオブジェクトを保持できるだけの十分な空き領域が必要です。キャッシュがいっぱいになると操作が失敗する可能性があります。
-
CLI構成ファイル
- OCIFSではAPIキー認証を行います。OCI CLIと同じ構成ファイルを利用できます。今回はあらかじめOCI CLIがインストールされて構成済みのインスタンスを利用するので、同じ構成ファイルを使っていきます。
-
-
オブジェクト・ストレージのバケット
- 今回はあらかじめ作成してあるTokyoリージョンのバケットを利用します。
OCIFSのインストール
OCIFSは以下のコマンドでインストールします。
sudo dnf install ocifs
以下の通り実行しました。インストールはすぐできました。
[opc@tk-inst-ol8 ~]$ sudo dnf install ocifs
Oracle Linux 8 BaseOS Latest (x86_64) 300 kB/s | 4.3 kB 00:00
Oracle Linux 8 BaseOS Latest (x86_64) 79 MB/s | 87 MB 00:01
Oracle Linux 8 Application Stream (x86_64) 325 kB/s | 4.5 kB 00:00
Oracle Linux 8 Application Stream (x86_64) 71 MB/s | 67 MB 00:00
Oracle Linux 8 Addons (x86_64) 302 kB/s | 3.5 kB 00:00
Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64) 265 kB/s | 3.5 kB 00:00
Latest Unbreakable Enterprise Kernel Release 7 for Oracle Linux 8 (x86_64) 78 MB/s | 55 MB 00:00
Dependencies resolved.
===================================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================================
Installing:
ocifs x86_64 1.2.0-6.el8 ol8_oci_included 81 k
Installing dependencies:
fuse x86_64 2.9.7-19.0.1.el8 ol8_baseos_latest 82 k
Transaction Summary
===================================================================================================================================
Install 2 Packages
Total download size: 163 k
Installed size: 373 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): fuse-2.9.7-19.0.1.el8.x86_64.rpm 594 kB/s | 82 kB 00:00
(2/2): ocifs-1.2.0-6.el8.x86_64.rpm 538 kB/s | 81 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------
Total 1.0 MB/s | 163 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : fuse-2.9.7-19.0.1.el8.x86_64 1/2
Installing : ocifs-1.2.0-6.el8.x86_64 2/2
Running scriptlet: ocifs-1.2.0-6.el8.x86_64 2/2
Verifying : ocifs-1.2.0-6.el8.x86_64 1/2
Verifying : fuse-2.9.7-19.0.1.el8.x86_64 2/2
Installed:
fuse-2.9.7-19.0.1.el8.x86_64 ocifs-1.2.0-6.el8.x86_64
Complete!
[opc@tk-inst-ol8 ~]$
APIキーの準備
OCI CLI用に構成ファイルとユーザーのAPIキーの登録が済んでいることを確認します。
[opc@tk-inst-ol8 ~]$ ls .oci/
config oci_api_key.pem oci_api_key_public.pem
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ cat .oci/config
[DEFAULT]
user=ocid1.user.oc1..aaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fingerprint=xxxxxxxxxxxxxxxxxxxxxxxxxx
key_file=/home/opc/.oci/oci_api_key.pem
tenancy=ocid1.tenancy.oc1..aaxxxxxxxxxxxxxxxxxxxxxxxxxxxx
region=ap-tokyo-1
[opc@tk-inst-ol8 ~]$
オブジェクト・ストレージ・バケットの準備
あらかじめTokyoリージョンに作成してある以下のバケットを利用します。
バケットのマウントとオブジェクトの表示
マウントするディレクトリを作成し、以下のocifsコマンドでバケットをマウントします。
ocifs [オプション] <バケット・パス> <ディレクトリ名>
実施してみます。
[opc@tk-inst-ol8 ~]$ pwd
/home/opc
[opc@tk-inst-ol8 ~]$ mkdir ~/ocifsdir
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ ls
ocifsdir
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ ocifs tk_test_bucket ocifsdir
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ cd ocifsdir/
[opc@tk-inst-ol8 ocifsdir]$ ll
total 4
-rw-r--r--. 1 opc opc 2896397 Feb 5 04:11 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
drwxr-xr-x. 2 opc opc 6 Feb 5 02:48 testfolder1
-rw-r--r--. 1 opc opc 10 Feb 5 04:13 test.txt
-rw-r--r--. 1 opc opc 12135139840 Feb 5 02:48 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 24643941888 Feb 5 02:48 WinDev2306Eval-disk1.vmdk
[opc@tk-inst-ol8 ocifsdir]$
[opc@tk-inst-ol8 ocifsdir]$ cat test.txt
testtest
[opc@tk-inst-ol8 ocifsdir]$
バケット内に格納されているオブジェクトの情報と同じ情報がLinux OS上からも見え、ファイルの中身も見ることができました。
オブジェクトはファイルシステム上にキャッシュされると書いてあるのでキャッシュを確認してみます。デフォルトのキャッシュ・ディレクトリは、~/.ocifs/ です。
[opc@tk-inst-ol8 cache]$ pwd
/home/opc/.ocifs/tk_test_bucket/cache
[opc@tk-inst-ol8 ocifsdir]$ ll
total 4
-rw-r--r--. 1 opc opc 2896397 Feb 5 04:11 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
drwxr-xr-x. 2 opc opc 6 Feb 5 02:48 testfolder1
-rw-r--r--. 1 opc opc 10 Feb 5 04:13 test.txt
-rw-r--r--. 1 opc opc 12135139840 Feb 5 02:48 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 24643941888 Feb 5 02:48 WinDev2306Eval-disk1.vmdk
[opc@tk-inst-ol8 ocifsdir]$
さきほどマウントしたディレクトリで表示した内容と同じ情報が確認できました。
オブジェクトのアップロード
オブジェクトのマルチパートアップロードにも対応しているようですので、大きめのファイルをオブジェクト・ストレージに配置してみます。
デフォルトで100MB以上のファイルはマルチパートに分割されるようなので、ローカル領域に1000MBのファイルを作成してから、マウントしたディレクトリにコピーを行ってみます。
[opc@tk-inst-ol8 ~]$ dd bs=1M count=1000 if=/dev/zero of=1000M_file
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.359915 s, 2.9 GB/s
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ ls
1000M_file ocifsdir test_rename1.txt
[opc@tk-inst-ol8 ~]$ cp 1000M_file ./ocifsdir/
[opc@tk-inst-ol8 ~]$ ll ocifsdir/
total 1024004
-rw-rw-r--. 1 opc opc 1048576000 Feb 5 04:26 1000M_file
-rw-r--r--. 1 opc opc 2896397 Feb 5 04:11 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
drwxr-xr-x. 2 opc opc 6 Feb 5 02:48 testfolder1
-rw-r--r--. 1 opc opc 10 Feb 5 04:13 test.txt
-rw-r--r--. 1 opc opc 12135139840 Feb 5 02:48 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 24643941888 Feb 5 02:48 WinDev2306Eval-disk1.vmdk
[opc@tk-inst-ol8 ~]$
OCIFS上にコピーが完了しました。
また、コピー中にバケットのステータスを確認したところ、マルチパートアップロードの近似サイズが増えていたので、確かにマルチパートアップロードが行われていそうです。
バケット側でも正常に1000MBのファイルがアップロードされていることが確認できました!
続いて、もう少し大きいサイズで試したいので、まずローカル上に5000MBのファイルを生成してみます。
[opc@tk-inst-ol8 ~]$ dd bs=1M count=5000 if=/dev/zero of=5000M_file
5000+0 records in
5000+0 records out
5242880000 bytes (5.2 GB, 4.9 GiB) copied, 64.2315 s, 81.6 MB/s
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.7G 49M 5.7G 1% /run
tmpfs 5.7G 0 5.7G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 20G 17G 55% /
/dev/mapper/ocivolume-oled 10G 410M 9.6G 4% /var/oled
/dev/sda2 1014M 363M 652M 36% /boot
/dev/sda1 100M 6.0M 94M 6% /boot/efi
tmpfs 1.2G 0 1.2G 0% /run/user/986
tmpfs 1.2G 0 1.2G 0% /run/user/1000
[opc@tk-inst-ol8 ~]$
この時点で、/ 領域は20G使用済み、空き17Gです。OCIFSディレクトリにコピーしていきます。
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ cp 5000M_file ocifsdir/
[opc@tk-inst-ol8 ~]$
しばらくしてコピーが完了しました。バケット側からも無事アップロード完了したことが分かります。
空き領域の変化を見てみます。
[opc@tk-inst-ol8 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.7G 49M 5.7G 1% /run
tmpfs 5.7G 0 5.7G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 25G 12G 68% /
/dev/mapper/ocivolume-oled 10G 410M 9.6G 4% /var/oled
/dev/sda2 1014M 363M 652M 36% /boot
/dev/sda1 100M 6.0M 94M 6% /boot/efi
tmpfs 1.2G 0 1.2G 0% /run/user/986
tmpfs 1.2G 0 1.2G 0% /run/user/1000
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ ll .ocifs/tk_test_bucket/cache/
total 6144008
-rw-rw-r--. 1 opc opc 1048576000 Feb 5 04:26 1000M_file
-rw-rw-r--. 1 opc opc 5242880000 Feb 5 04:37 5000M_file
-rw-r--r--. 1 opc opc 2896397 Feb 5 04:11 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
drwxr-xr-x. 2 opc opc 6 Feb 5 02:48 testfolder1
-rw-r--r--. 1 opc opc 14 Feb 5 02:58 test_rename1.txt
-rw-r--r--. 1 opc opc 14 Feb 5 02:48 test_rename5.txt
-rw-r--r--. 1 opc opc 10 Feb 5 04:13 test.txt
-rw-r--r--. 1 opc opc 12135139840 Feb 5 02:48 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 24643941888 Feb 5 02:48 WinDev2306Eval-disk1.vmdk
[opc@tk-inst-ol8 ~]$
使用済みが25GBに増えました。これはキャッシュが増えたのだと考えられます。
キャッシュ・ディレクトリが配置されているストレージ・デバイスが一杯になると、一部のOCIFS操作は失敗する可能性があるということなので、大きなファイル操作を行う場合には十分なキャッシュ領域を確保する必要がありそうです。
また、デフォルトの設定だと、マウントされている限りキャッシュはパージされないようです。
バケットのアンマウント
アンマウントするのは、
fusermount -u <ディレクトリ名>
または、sudoしてから、
umount <ディレクトリ名>
です。
[opc@tk-inst-ol8 ~]$ fusermount -u ocifsdir/
アンマウントできました。
アンマウントしたら使用済み領域が19Gに減りました。
[opc@tk-inst-ol8 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.7G 49M 5.7G 1% /run
tmpfs 5.7G 0 5.7G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 19G 18G 52% /
/dev/mapper/ocivolume-oled 10G 387M 9.7G 4% /var/oled
/dev/sda2 1014M 363M 652M 36% /boot
/dev/sda1 100M 6.0M 94M 6% /boot/efi
tmpfs 1.2G 0 1.2G 0% /run/user/986
tmpfs 1.2G 0 1.2G 0% /run/user/1000
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ cd .ocifs/tk_test_bucket/
[opc@tk-inst-ol8 tk_test_bucket]$ ls
[opc@tk-inst-ol8 tk_test_bucket]$
キャッシュ・ディレクトリの中身がパージされて何もなくなっていることも確認できました。
ローカル・ストレージ領域以上のサイズのファイルを操作してみる (2025/02/10追記)
続いて、マルチパート・アップロードで大きなサイズのファイルをアップロードする際にローカルのキャッシュ領域がファイルサイズ分必要になるのかどうかを試してみます。
ローカル・ストレージに10Gのファイルを作成します。この時点でローカル・ストレージの空き領域はあと7.4Gとなっています。
キャッシュ領域を超えるサイズが書き込もうとするとどうなるか確認するため、この10GファイルをOCIFS領域にコピーしてみたいと思います。
[opc@tk-inst-ol8 ~]$ dd bs=1M count=10000 if=/dev/zero of=10G_file
[opc@tk-inst-ol8 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.7G 129M 5.6G 3% /run
tmpfs 5.7G 0 5.7G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 29G 7.4G 80% /
/dev/sda2 1014M 363M 652M 36% /boot
/dev/sda1 100M 6.0M 94M 6% /boot/efi
/dev/mapper/ocivolume-oled 10G 682M 9.4G 7% /var/oled
tmpfs 1.2G 0 1.2G 0% /run/user/986
tmpfs 1.2G 0 1.2G 0% /run/user/1000
[opc@tk-inst-ol8 ~]$
OCIFS領域に10Gのファイルをコピーしていきます。しばらく時間がかかります。
[opc@tk-inst-ol8 ~]$ cp 10G_file ocifsdir/
別ターミナルでコピー中のローカル領域の変化を見てみます。
[opc@tk-inst-ol8 ~]$ ls -alrt ocifsdir/
total 4194248
drwx------. 6 opc opc 4096 Feb 10 03:47 ..
-rw-r--r--. 1 opc opc 24643941888 Feb 10 05:52 WinDev2306Eval-disk1.vmdk
-rw-r--r--. 1 opc opc 12135139840 Feb 10 05:52 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 10 Feb 10 05:52 test.txt
drwxr-xr-x. 2 opc opc 6 Feb 10 05:52 testfolder1
-rw-r--r--. 1 opc opc 2896397 Feb 10 05:52 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
-rw-r--r--. 1 opc opc 5242880000 Feb 10 05:52 5000M_file
-rw-r--r--. 1 opc opc 1048576000 Feb 10 05:52 1000M_file
drwxr-xr-x. 3 opc opc 4096 Feb 10 05:56 .
-rw-rw-r--. 1 opc opc 2805465088 Feb 10 05:58 10G_file
[opc@tk-inst-ol8 ~]$ ls -alrt .ocifs/tk_test_bucket/cache/
total 4194244
drwxr-xr-x. 3 opc opc 19 Feb 10 03:45 ..
-rw-r--r--. 1 opc opc 24643941888 Feb 10 05:52 WinDev2306Eval-disk1.vmdk
-rw-r--r--. 1 opc opc 12135139840 Feb 10 05:52 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 10 Feb 10 05:52 test.txt
drwxr-xr-x. 2 opc opc 6 Feb 10 05:52 testfolder1
-rw-r--r--. 1 opc opc 2896397 Feb 10 05:52 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
-rw-r--r--. 1 opc opc 5242880000 Feb 10 05:52 5000M_file
-rw-r--r--. 1 opc opc 1048576000 Feb 10 05:52 1000M_file
drwxr-xr-x. 3 opc opc 4096 Feb 10 05:56 .
-rw-rw-r--. 1 opc opc 2964848640 Feb 10 05:58 10G_file
[opc@tk-inst-ol8 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.7G 129M 5.6G 3% /run
tmpfs 5.7G 0 5.7G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 33G 3.4G 91% /
/dev/sda2 1014M 363M 652M 36% /boot
/dev/sda1 100M 6.0M 94M 6% /boot/efi
/dev/mapper/ocivolume-oled 10G 722M 9.3G 8% /var/oled
tmpfs 1.2G 0 1.2G 0% /run/user/986
tmpfs 1.2G 0 1.2G 0% /run/user/1000
[opc@tk-inst-ol8 ~]$ opc@tk-inst-ol8 ~]$
マウントしたディレクトリとキャッシュ・ディレクトリ両方で徐々に10Gのファイル・サイズが増えていきます。dfコマンドで確認すると空き容量も徐々に減っていきます。
バケット側を見てみると、マルチパートアップロードの近似カウントが1件存在しており、マルチパートアップロードが進んでいる様子が分かります。
そしてcpコマンドは途中で以下のエラーで失敗しました。
[opc@tk-inst-ol8 ~]$ cp 10G_file ocifsdir/
cp: error writing 'ocifsdir/10G_file': No space left on device
[opc@tk-inst-ol8 ~]$
マルチパートアップロードになっていても、やはりファイル・サイズ全体分のローカル空き領域がないとOCIFSに書き込むことはできないようです。
コピーに失敗した後は、OCIFSディレクトリとキャッシュ・ディレクトリの領域は開放され、7.4Gの空き領域に戻りました。
[opc@tk-inst-ol8 ~]$ ls -alrt ocifsdir/
total 4
drwx------. 6 opc opc 4096 Feb 10 03:47 ..
-rw-r--r--. 1 opc opc 24643941888 Feb 10 05:52 WinDev2306Eval-disk1.vmdk
-rw-r--r--. 1 opc opc 12135139840 Feb 10 05:52 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 10 Feb 10 05:52 test.txt
drwxr-xr-x. 2 opc opc 6 Feb 10 05:52 testfolder1
-rw-r--r--. 1 opc opc 2896397 Feb 10 05:52 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
-rw-r--r--. 1 opc opc 5242880000 Feb 10 05:52 5000M_file
-rw-r--r--. 1 opc opc 1048576000 Feb 10 05:52 1000M_file
drwxr-xr-x. 3 opc opc 179 Feb 10 06:00 .
[opc@tk-inst-ol8 ~]$ ls -alrt .ocifs/tk_test_bucket/cache/
total 0
drwxr-xr-x. 3 opc opc 19 Feb 10 03:45 ..
-rw-r--r--. 1 opc opc 24643941888 Feb 10 05:52 WinDev2306Eval-disk1.vmdk
-rw-r--r--. 1 opc opc 12135139840 Feb 10 05:52 tk_windows10-1.vmdk
-rw-r--r--. 1 opc opc 10 Feb 10 05:52 test.txt
drwxr-xr-x. 2 opc opc 6 Feb 10 05:52 testfolder1
-rw-r--r--. 1 opc opc 2896397 Feb 10 05:52 OCI_IaaS_NewFeature_FY25Q2_pub.pdf
-rw-r--r--. 1 opc opc 5242880000 Feb 10 05:52 5000M_file
-rw-r--r--. 1 opc opc 1048576000 Feb 10 05:52 1000M_file
drwxr-xr-x. 3 opc opc 179 Feb 10 06:00 .
[opc@tk-inst-ol8 ~]$
[opc@tk-inst-ol8 ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 5.7G 0 5.7G 0% /dev
tmpfs 5.7G 0 5.7G 0% /dev/shm
tmpfs 5.7G 129M 5.6G 3% /run
tmpfs 5.7G 0 5.7G 0% /sys/fs/cgroup
/dev/mapper/ocivolume-root 36G 29G 7.4G 80% /
/dev/sda2 1014M 363M 652M 36% /boot
/dev/sda1 100M 6.0M 94M 6% /boot/efi
/dev/mapper/ocivolume-oled 10G 722M 9.3G 8% /var/oled
tmpfs 1.2G 0 1.2G 0% /run/user/986
tmpfs 1.2G 0 1.2G 0% /run/user/1000
[opc@tk-inst-ol8 ~]$
まとめ
以下、そのほかの注意点も含めてまとめます。
- OCIFSを使うとOracle Linux上でオブジェクト・ストレージのバケットをマウントしてOS上からファイル操作ができるので便利。
- OCIFSは共有ファイル・システムではない。OCIFSを使用して同じバケットを複数同時にマウントするとデータの破損の可能性がある。また、バケットがマウントされている間は、コンソール、CLIまたはAPIなどを使ってバケット・オブジェクトを直接変更しないようにする必要がある。
- ただし実態はあくまでオブジェクト・ストレージであってファイルシステムではないので、以下のような点に注意。
- 通常のファイルとディレクトリのみサポートされる。シンボリック・リンク、物理リンクおよび特殊ファイル(ブロック、文字、fifo、特殊ファイル)はサポートされない
- ファイルシステム上のファイル属性(権限、ユーザーおよびグループの所有権、アクセス/変更/変更時間)は永続的なものではない
- ファイル操作を行うにはローカルファイルシステム上のキャッシュ領域が利用されており、特に大きなファイル操作を行う場合は十分な空き領域を確保する必要がある点に注意。
- デフォルトでマルチパート・アップロードに対応している。
- そのほか、ネーミングルールの制限もある
- 制限事項の詳細はドキュメント参照
ということで、使い方に注意しながら使っていきましょう!