すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ossfsを使用したLinuxオペレーティングシステムのローカルディレクトリへのOSSバケットのマウント

最終更新日:Oct 17, 2024

ossfsを使用すると、Object Storage Service (OSS) バケットをLinuxオペレーティングシステムのローカルディレクトリにマウントできます。 これにより、アプリケーションがローカルリソースにアクセスするのと同じ方法で、アプリケーションがバケット内のリソースにアクセスできます。 マウント機能は、リソース共有を容易にします。

前提条件

OSSが有効化され、OSSバケットが作成されます。 詳細については、「OSSの使用を開始」および「バケットの作成」をご参照ください。

ossfsのインストールと設定

  1. ossfsをインストールします。

    Ubuntu

    次のコマンドを順番に実行して、Ubuntu 16.04 (x64) にossfsをインストールします。

    sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.3_ubuntu16.04_amd64.deb
    sudo apt-get update
    sudo apt-get install gdebi-core
    sudo gdebi ossfs_1.91.3_ubuntu16.04_amd64.deb

    CentOSまたはAnolis

    CentOS/Anolis

    次のコマンドを実行して、CentOS 7.0 (x64) にossfsをインストールします。

    sudo wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.3_centos7.0_x86_64.rpm
    sudo yum install ossfs_1.91.3_centos7.0_x86_64.rpm

    クライアントがYellowdog Updater, Modified (YUM) を使用してRPMパッケージをインストールする場合、クライアントノードのネットワーク環境要因により、YUMを使用して依存関係をダウンロードできない場合があります。 この問題を解決するには、YUMを使用して、同じオペレーティングシステムバージョンを実行するノードに通常のネットワーク経由で依存関係をダウンロードし、必要なノードに依存関係をコピーします。 たとえば、ossfsはFUSE 2.8.4以降で実行されます。 次のコマンドを実行して、最新バージョンのFUSEをYUMソースからローカルデバイスにダウンロードします。

    sudo yum install --downloadonly --downloaddir=./ fuse
    重要

    他の依存関係をダウンロードするには、FUSEを必要なパッケージの名前に置き換えます。

  2. アップロードされたオブジェクトのコンテンツタイプとファイル名拡張子を一致させる場合は、mime.typesファイルを追加します。 ossfsは、/etc/mime.types内のコンテンツを照会して、オブジェクトのコンテンツタイプを設定します。

    mime.typesファイルを追加しない場合、OSSはデフォルトでアップロードされたオブジェクトのコンテンツタイプをapplication/octet-streamに設定します。

    次のコマンドを実行して、mime.typesファイルを追加します。

    Ubuntu

    次のコマンドを実行して、mime.typesファイルを追加します。

    sudo apt-get install mime-support

    CentOSまたはAnolis

    次のコマンドを実行して、mime.typesファイルを追加します。

    sudo yum install mailcap

バケットのマウントとバケット内のデータへのアクセス

  1. ローカルディレクトリにマウントするバケットを選択します。

    説明

    ローカルディレクトリから前のバケットにオブジェクトをアップロードするときに2つのアップロード要求が開始される可能性があるため、低頻度アクセス (IA) バケットまたはアーカイブオブジェクトのリアルタイムアクセスが有効になっているバケットをローカルディレクトリにマウントしないことをお勧めします。 最初のリクエストは0バイトのオブジェクトを作成し、2番目のリクエストはバケット内のオブジェクトに実際のデータをアップロードします。 IAまたはArchiveストレージクラスに基づく0バイトのオブジェクトに対して、30日間の64 KBのストレージ料金が請求されます。 この結果、予想外の保管コストが発生する。

  2. バケットへのアクセスに使用するアカウント情報を設定します。

    /etc/passwd-ossfsファイルに次の情報を書き込みます。バケット名と、バケットに対するアクセス権限を持つRAMユーザーのAccessKeyペア (AccessKey IDとAccessKey secret) です。 次に、ファイルの権限を640に設定します。

    sudo sh -c 'echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs'
    ### Run the following command if you use a root user role:###
    # echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs
    sudo chmod 640 /etc/passwd-ossfs

    BucketName、yourAccessKeyId、およびyourAccessKeySecretを、実際のバケット名、AccessKey ID、およびAccessKeyシークレットに置き換えます。 例:

    sudo sh -c 'echo bucket-test:LTAI************:MOk8x0y9hx******************** > /etc/passwd-ossfs'
    sudo chmod 640 /etc/passwd-ossfs
  3. バケットを指定されたディレクトリにマウントします。

    説明
    • ossfsを使用して指定したディレクトリにバケットをマウントした後のオブジェクトの読み取りと書き込みのパフォーマンスを確保するために、ossfs V1.91.2およびV1.91.3の提案に基づいて適切なパラメーターを指定することを推奨します。

    • ossfsを使用してバケットを指定されたディレクトリにマウントした後のデータアクセスのセキュリティを確保するには、正しいアカウント情報とアクセス許可を設定することを推奨します。 詳細については、「ossfsの設定とマウント」をご参照ください。

    sudo ossfs <BucketName> <mountfolder> -o url=<Endpoint>

    次のコマンドを実行して、中国 (杭州) リージョンのbucket-testという名前のバケットを /tmp/ossfsディレクトリにマウントします。

    sudo mkdir /tmp/ossfs
    sudo ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-hangzhou-internal.aliyuncs.com
    重要

    データの読み取り時に発生するトラフィックコストを削減するために、ossfsをElastic Compute Service (ECS) インスタンスにデプロイし、-o urlを使用して、内部エンドポイントを使用して宛先バケットにアクセスするように指定することを推奨します。 この例では、内部エンドポイントは http://oss-cn-hangzhou-internal.aliyuncs.com です。 内部エンドポイントを使用するには、ECSインスタンスと宛先バケットが同じリージョンにある必要があります。 詳細については、「リージョンとエンドポイント」をご参照ください。

  4. ローカルファイルシステムからバケット内のオブジェクトを読み取ります。

    1. バケット内のオブジェクトのリストを照会します。

      sudo ls -lh /tmp/ossfs

      image

      説明

      リストディレクトリなどのメタデータ関連の操作には、OSSへのリモートアクセスが含まれ、特定のレベルのレイテンシーがあります。

    2. オブジェクトをコピーします。

      sudo cp /tmp/ossfs/bird.jpeg /root

      上記のコマンドは、bird.jpegオブジェクトを /rootディレクトリにコピーします。

    3. バケットにオブジェクトを 1 つアップロードします。

      sudo cp /root/forest.jpeg /tmp/ossfs

      上記のコマンドは、バケットがマウントされているローカルディレクトリにforest.jpegファイルを追加します。

      image

      説明

      アップロードが中断されて再開されない場合、オブジェクトのアップロードされたデータはパーツとしてバケットに保存されます。 追加のストレージ料金を防ぐために、次のいずれかの方法を使用して、不要になったこれらの部品を削除することをお勧めします。

  5. バケットをマウントしたままにしない場合は、バケットのマウントを解除します。

    sudo fusermount -u /tmp/ossfs

関連ドキュメント

  • ossfsの設定方法の詳細については、「高度な設定」をご参照ください。

  • ossfsオプションの詳細については、「共通オプション」をご参照ください。

  • ossfsに関するよくある質問の詳細については、「FAQ」をご参照ください。