Object Storage Service (OSS) は、Alibaba Cloud が提供する低コストで大規模な共有ストレージサービスです。イメージ、オーディオ、ビデオファイル、その他の非構造化データなど、書き込み後にほとんど変更されないデータの保存に適しています。ACK の Pod に OSS バケットをボリュームとしてマウントして、永続ストレージの要件を満たすことができます。
OSS の概要
Object Storage Service (OSS) は、高いデータ耐久性とデータ可用性を備えた、大規模、安全、低コスト、高信頼性のクラウドストレージサービスです。OSS は、標準、低頻度アクセス、アーカイブ、コールドアーカイブなど、さまざまなストレージクラスを提供し、ホットからコールドまでのデータストレージシナリオをカバーします。課金方法とデータアクセス頻度に基づいてストレージクラスを選択できます。詳細については、「ストレージソリューションの選択」および「ストレージクラス」をご参照ください。
OSS の課金方法の詳細については、「課金の概要」をご参照ください。
シナリオ
低コストで大規模な共有ストレージスペースです。書き込み後にほとんど変更されないデータの保存に適しています。
一般的なシナリオは次のとおりです。
データ共有シナリオ
OSS は共有ストレージです。複数の Pod が同じデータにアクセスできます。Pod が削除されても OSS 内のデータは削除されません。Pod 間のデータ共有に OSS を使用できます。
設定ファイル、イメージ、各種ビデオメディアファイルなどのファイルを含む読み取り集中型シナリオ
OSS は、設定ファイル、イメージ、オーディオ、ビデオファイルなどの非構造化データの保存に適しています。ビジネスでファイルコンテンツを変更する必要がある場合は、POSIX 操作との互換性を高めるために ossfs 1.0 ボリュームを選択してください。
AI 推論やデータ分析などの高同時実行バッチ処理シナリオ
OSS の高いサーバー側帯域幅は、高同時実行バッチ処理に適しています。例としては、AI トレーニング、データ分析、自動運転などの新しい計算集約型のワークロードやワークフローが挙げられます。これらのワークロードは、主にシーケンシャル読み取りとランダム読み取り、およびシーケンシャル書き込み (追加のみ) を含みます。より高いスループットを得るには、ossfs 2.0 ボリュームを選択してください。
認証とディザスタリカバリに対する高い要件を持つデータセキュリティシナリオ
OSS は、ディザスタリカバリのためのゾーン冗長ストレージと、KMS などのサーバー側暗号化機能をサポートしています。また、MD5 検証をサポートして、データアップロードとダウンロードの整合性を確保します。さらに、RAM と OSS バケットポリシーという 2 つのオブジェクトレベルの認証方式をサポートしています。
OSS ボリュームで書き込み操作を実行するには、ossfs 1.0 ボリュームを使用し、バージョン 1.91 以降にアップグレードしてください。詳細については、「ossfs 1.0 の新機能とパフォーマンスストレステスト」をご参照ください。
読み書き分離シナリオでのデータアクセスパフォーマンスを向上させます。詳細については、「OSS 読み書き分離のベストプラクティス」をご参照ください。
クライアントの選択
Filesystem in Userspace (FUSE) クライアントまたは仮想ブロックデバイスを使用して、オブジェクトストレージを OSS ボリュームとしてローカルにマウントできます。従来のローカルストレージやブロックストレージと比較して、OSS ボリュームには Portable Operating System Interface (POSIX) 操作の互換性に関して一定の制限があります。
OSS ボリュームでは、以下のクライアントがサポートされています。詳細については、「クライアント選択リファレンス」をご参照ください。
クライアント | タイプ | 説明 | 必要なストレージコンポーネントバージョン |
FUSE | 追加書き込み、ランダム書き込み、ユーザー権限の設定など、ほとんどの POSIX 操作をサポートします。詳細については、「仕組み」および「バージョンの更新と新機能」をご参照ください。 | 常にサポートされています。 詳細については、「ossfs 1.0 リリースノート」をご参照ください。 | |
FUSE | 完全な読み取りとシーケンシャルな追加書き込みをサポートします。このクライアントは読み取り負荷の高いシナリオに適しており、データの読み取りパフォーマンスを大幅に向上させます。詳細については、「ossfs 2.0 の概要」をご参照ください。 | CSI コンポーネントバージョン v1.33.1 以降。 | |
仮想ブロックデバイス | 現在のバージョンは読み取り専用シナリオのみをサポートします。仮想ブロックデバイスを使用して、多数の small ファイルが関与する読み取り専用シナリオにおける FUSE のパフォーマンスボトルネックを解決します。 | CSI コンポーネントに加えて、strmvol-csi-driver コンポーネントもデプロイする必要があります。 |
使用上の注意
OSS バケット内のサブディレクトリをマウントするには、
subpathメソッドを使用する代わりに、永続ボリューム (PV) のpathフィールドを設定します。subpathまたはsubpathExpr構成を使用する場合は、権限エラーによるマウント例外を防ぐため、まず「subpath または subpathExpr を使用して OSS ボリュームをマウントすると例外が発生する」をお読みください。マウントされた OSS ボリュームのルートパスでは、
chmodおよびchown操作はサポートされていません。これらの操作を実行するには、mp_umask設定項目を変更します。詳細については、「OSS ボリュームのマウント権限の問題」をご参照ください。
注意事項
以下の注意事項は、主に ossfs 1.0 を使用する一般的な読み書きシナリオに適用されます。ossfs 2.0 および strmvol クライアントは、主に読み取り操作である一部の POSIX 操作のみをサポートするため、通常は影響を受けません。
ランダム書き込みまたは追加書き込み操作では、ローカルに新しいファイルが作成され、それが OSS サーバーにアップロードされます。OSS のストレージ特性のため、次の点にご注意ください:
ファイルとフォルダの rename 操作はアトミックではありません。
マウントパスでの同時書き込み操作や直接的な圧縮・展開操作は避けてください。
重要複数書き込みシナリオでは、各クライアントの動作を調整する必要があります。ACK は、書き込み操作に起因するメタデータとデータの一貫性を保証しません。
さらに、以下の制限事項に注意してください。
ハードリンクはサポートされていません。
アーカイブストレージ、コールドアーカイブ、またはディープコールドアーカイブストレージクラスのバケットのマウントはサポートされていません。
デフォルトでは、readdir 操作は多数の headObject リクエストを送信して、パス内のすべてのオブジェクトに関する拡張情報を取得します。宛先パスに多数のファイルが含まれている場合、ossfs の全体的なパフォーマンスが影響を受ける可能性があります。読み書きシナリオでファイル権限やその他の属性が重要でない場合は、最適化のために
-o readdir_optimizeパラメーターを有効にできます。詳細については、「新しい readdir 最適化機能」をご参照ください。CSI プラグインのバージョンが v1.20.7 より前の場合、ローカルでの変更のみを検出し、他のクライアントやツールからの外部の変更を検出できません。
CSI バージョンが 1.28 より前の場合、ossfs はノード上で直接プロセスとして実行されます。サポートされているノードのオペレーティングシステムは、CentOS、Alibaba Cloud Linux、ContainerOS、および Anolis OS です。ノードのオペレーティングシステムがサポートされていない場合は、CSI コンポーネントをアップグレードしてください。