ossfs は、OSS バケットをローカル Linux システムにマウントできるツールです。アプリケーションは、open や read などの標準的なファイルシステム操作を使用して OSS 内のオブジェクトにアクセスできます。ossfs は、これらの操作を OSS API 呼び出しに自動的に変換します。
ossfs には 1.0 と 2.0 の 2 つのバージョンがあります。2.0 は、最新のコンピューティング集約型アプリケーション向けにシステムアーキテクチャを全面的に刷新しています。大幅なパフォーマンス向上を実現する一方で、POSIX セマンティクスにいくつかの制限があります。今後の開発における主要バージョンです。OSS SDK を簡単に使用できない場合や、OSS Connector for AI/ML を使用してモデル トレーニングを高速化できない場合は特に、AI トレーニング、推論、自動運転シミュレーションなどの新しいアプリケーションには ossfs 2.0 の使用を強く推奨します。一方、ossfs 1.0 は POSIX セマンティクスをより包括的にサポートしており、パフォーマンス要件が比較的低い日常的な利用シナリオに適しています。
前提条件
動作環境
ossfs 2.0 は、ユーザー空間におけるファイルシステム (FUSE) をベースにしています。
|
アーキテクチャ |
オペレーティングシステム |
バージョン |
|
x86_64 |
CentOS |
CentOS 7、CentOS 8 |
|
Rocky Linux |
Rocky Linux 9.0 以降 |
|
|
Alibaba Cloud Linux |
Alibaba Cloud Linux 2 以降 |
|
|
Ubuntu |
Ubuntu 20.04 LTS およびそれ以降の LTS バージョン |
|
|
Debian |
Debian 11 以降 |
|
|
aarch64 |
Alibaba Cloud Linux |
Alibaba Cloud Linux 3 |
ossfs 2.0 のインストール
Alibaba Cloud Linux
ご利用のシステムアーキテクチャーに対応するコマンドを実行して、パッケージをダウンロードします。
x86_64 アーキテクチャー:
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs2_2.0.7_linux_x86_64.rpmaarch64 アーキテクチャー:
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs2_2.0.7_linux_aarch64.rpm
ご利用のシステムアーキテクチャーに対応するコマンドを実行して、ossfs 2.0 をインストールします。
x86_64 アーキテクチャー:
sudo yum install ossfs2_2.0.7_linux_x86_64.rpm -yaarch64 アーキテクチャー:
sudo yum install ossfs2_2.0.7_linux_aarch64.rpm -y
-
次のコマンドを実行して、ossfs 2.0 がインストールされているか確認します。
ossfs2 --version説明ossfs2 実行可能ファイルは、
/usr/local/bin/ossfs2パスにインストールされます。PATH環境変数をカスタマイズしている場合は、絶対パス/usr/local/bin/ossfs2を使用してプログラムを実行する必要があります。
CentOS/Rocky Linux
次のコマンドを実行して、パッケージをダウンロードします。
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs2_2.0.7_linux_x86_64.rpm次のコマンドを実行して、ossfs 2.0 をインストールします。
sudo yum install ossfs2_2.0.7_linux_x86_64.rpm -y-
次のコマンドを実行して、ossfs 2.0 がインストールされているか確認します。
ossfs2 --version説明ossfs2 実行可能ファイルは
/usr/local/bin/ossfs2パスにインストールされます。PATH環境変数にカスタム構成がある場合は、絶対パス/usr/local/bin/ossfs2を使用してプログラムを実行する必要があります。
Ubuntu
次のコマンドを実行して、パッケージをダウンロードします。
sudo wget https://gosspublic.alicdn.com/ossfs/ossfs2_2.0.7_linux_x86_64.deb次のコマンドを実行して、ossfs 2.0 をインストールします。
sudo dpkg -i ossfs2_2.0.7_linux_x86_64.deb-
次のコマンドを実行して、ossfs 2.0 がインストールされているか確認します。
ossfs2 --version説明ossfs2 実行可能ファイルは
/usr/local/bin/ossfs2パスにインストールされます。PATH環境変数を独自に構成している場合は、絶対パス/usr/local/bin/ossfs2を使用してプログラムを実行する必要があります。
ossfs 2.0 の設定
OSS バケットをマウントするには、シナリオに応じた設定ファイルを作成する必要があります。その後、マウントコマンドを実行する際にこのファイルを参照できます。
-
OSS の管理権限を持つ RAM ユーザーのアクセスキーペアを作成します。
-
OSS の認証情報を環境変数として設定します。
export OSS_ACCESS_KEY_ID=LTAI****************** export OSS_ACCESS_KEY_SECRET=8CE4********************** -
ossfs 2.0 の設定ファイルには、任意の名前とパスを使用できます。例えば、
/etc/ossfs2.confという名前のファイルを作成します。sudo touch /etc/ossfs2.conf -
マウント情報を入力します。次の例は、バケット全体を読み取り専用モードでマウントするための設定を示しています。
説明バケットのエンドポイントを確認するには、バケットページに移動し、対象のバケットを選択してから、左側メニューで 概要 をクリックします。エンドポイントは アクセスタイプ セクションに表示されます。以下の例では、中国 (杭州) リージョンのバケットを使用しています。
中国 (杭州) リージョンのバケットのエンドポイントは次のとおりです。パブリックエンドポイントは
oss-cn-hangzhou.aliyuncs.comです。クラシックネットワークまたは Virtual Private Cloud (VPC) 内の Elastic Compute Service (ECS) インスタンスからのアクセス用の内部エンドポイントはoss-cn-hangzhou-internal.aliyuncs.comです。全世界のアップロードおよびダウンロード用の転送高速化エンドポイントはoss-accelerate.aliyuncs.comです。OSS アクセラレータエンドポイントはcn-hangzhou-internal.oss-data-acc.aliyuncs.comです。すべてのエンドポイントは HTTPS をサポートしています。作成した ossfs 2.0 の設定ファイルを開きます。次の例に基づいてファイルを設定して保存します。この例では、中国 (杭州) リージョンの内部エンドポイントを使用しています。より高速かつ安定したデータ転送を実現するために、同一リージョンの VPC 内にあるインスタンスからバケットをマウントする場合は、内部エンドポイントまたは OSS アクセラレータのエンドポイントを使用してください。ossfs へのアクセスにパブリックエンドポイントを使用することは推奨しません。高いレイテンシや不安定なインターネット接続により、パフォーマンスの問題が発生する可能性があります。
# バケットが存在するリージョンのエンドポイント --oss_endpoint=https://oss-cn-hangzhou-internal.aliyuncs.com # バケット名 --oss_bucket=bucketName # 読み取り専用モードでマウント --ro=true
バケットのマウントとアクセス
-
マウントポイントを作成します。
マウントポイントは任意の名前と任意のパスで作成できます。この例では、
/tmp/ossfs2-bucketディレクトリを作成します。sudo mkdir /tmp/ossfs2-bucket -
コマンドを実行してバケットをマウントします。
次のコマンドは、
ossfs2.conf設定ファイルで指定したバケットを、ローカルの/tmp/ossfs2-bucket/ディレクトリに読み取り専用モードでマウントします。読み書きモードでバケットをマウントするには、ossfs2.confファイルから--ro=trueオプションを削除します。sudo ossfs2 mount /tmp/ossfs2-bucket/ -c /etc/ossfs2.conf -
マウントしたバケットにアクセスします。
バケットをマウントすると、ローカルファイルのようにバケット内のオブジェクトにアクセスできます。たとえば、
sudo ls -lh /tmp/ossfs2-bucket/コマンドを実行して、マウントしたバケット内のファイルを一覧表示します。[root@hostname ~]# sudo ls -lh /tmp/ossfs2-bucket/ total 36G drwxrwxrwx 1 root root 0 Mar 20 13:27 100G drwxrwxrwx 1 root root 0 Mar 20 13:27 100G -rwxrwxrwx 1 root root 36G Feb 21 10:48 xxx.bin drwxrwxrwx 1 root root 0 Mar 20 10:48 checkpoints -rwxrwxrwx 1 root root 0 Feb 10 18:25 filename.txt -rwxrwxrwx 1 root root 23K Mar 7 13:26 xxx.txt -rwxrwxrwx 1 root root 191 Feb 25 15:10 xxx.txt drwxrwxrwx 1 root root 0 Mar 20 10:48 img -rwxrwxrwx 1 root root 575 Mar 6 16:52 xxx.txt -rwxrwxrwx 1 root root 269 Jan 23 14:48 xxx.txt -rwxrwxrwx 1 root root 2.2M Feb 10 13:20 xxx.txt -rwxrwxrwx 1 root root 11 Jan 23 14:08 xxxon.txt -rwxrwxrwx 1 root root 2.1K Jan 24 14:16 xxx.txt -rwxrwxrwx 1 root root 2.1K Jan 24 14:17 xxx.txt -rwxrwxrwx 1 root root 4.8K Feb 10 13:36 xxx.txt -rwxrwxrwx 1 root root 2.1K Jan 23 17:52 xxx -
バケットをアンマウントします。
マウントしたバケットが不要になった場合は、次のコマンドを実行してアンマウントします。
sudo umount /tmp/ossfs2-bucket/