パフォーマンス
メモリーとディスクを使用したキャッシュ処理
ObjectiveFS では、パフォーマンスの向上および S3 間との処理を軽減するため、データおよびメタデータをメモリー内にキャッシュします ( ここでは「メモリーキャッシュ」と呼称します )。メモリーキャッシュのサイズは、ユーザー側で設定でき、キャッシュの統計情報は、ログファイルへ出力されます。
また、ObejctiveFS では、ローカルディスクもキャッシュに利用できます ( ここでは「ディスクキャッシュ」と呼称します )。ディスクキャッシュを利用することにより、ファイルへのアクセス時に起こるレイテンシーの緩和、また、データのスループットを向上できます。ディスクキャッシュ内のコンテンツは、ファイルシステムのアンマウント時にも永続的に残ります。このため、ファイルシステムを再びマウントしたときに、起動・アクセスが早くなります。ObjectiveFS では、このディスクキャッシュ内での各種処理を自動で行うため、メンテナンスも必要ありません。
マルチスレッド化
マルチスレッド化することにより、レイテンシーの緩和とスループットを向上させることができます。
ObjectiveFS では、データの圧縮、データの完全性検証、ディスクキャッシュ ( ディスクをキャッシュとして使用 ) へのアクセス、キャッシュの更新処理に対して、専用の CPU・IO スレッドを割り当て、並列処理を行います。
集約処理 ( コンパクション )
集約処理により、ファイルシステムへのアクセス時に必要となる、オブジェクトストア関連の処理数を減らすことができ、加えて、パフォーマンスも向上します。集約処理では、オブジェクトストア内に存在する、小さなオブジェクト群を結合させ、より大きなオブジェクトにしたり、また、関連するデータの結合処理をします。集約処理は、バックグランドでの処理であり、また、ファイルシステムの種類と負荷に応じて、動的に処理を調整してくれます。
圧縮処理
ObjectiveFS では、オブジェクトストアへ送信する前に、高速な圧縮アリゴリズムを使用して、データを圧縮しています。ObjectiveFS では、圧縮可能なデータを動的に検知し、また、すでに圧縮済みのデータは無視します。
S3 Transfer Acceleration のサポート
ObjectiveFS では、サーバーと S3 バケット間のファイル転送を高速化するため、S3 Transfer Acceleration をサポートしています。
管理
スナップショット
ObjectiveFS では、自動設定スナップショット ( automatic snapshot ) と手動設定スナップショット ( checkpoint/manual point-in-time snapshot ) をサポートしています。スナップショット自体をマウントして、読み取り専用のファイルシステムとして使用でき、スナップショット作成時のファイルシステム データにアクセスすることもできます。作成可能および使用可能なスナップショット数に制限はありません。
ローカルでのライセンス認証
ObjectiveFS が行っているライセンス認証は、非常に堅牢で、加えて、システムの停止が数日に及んでも問題が起きないように設計されていますが、外部の認証システムを利用したくないお客様もいるかと思います。このような場合、ObjectiveFS では、ローカルでのライセンス認証機能を提供しております。これにより、外部ライセンスサーバーに頼ることなく、自前のインフラ内で認証処理を行うことができます。
EC2 の IAM ロール
Amazon EC2 の IAM ロール を使用して、S3 で使用する各種鍵を自動で管理することができます。ObjectiveFS は、鍵の有効期限を認識して、期限切れ前に、鍵の更新を自動で行ってくれます。よって、ファイルシステムを継続して稼働することができます。
鍵の自動更新 ( Live Rekeying )
ObjectiveFS では、鍵の自動更新 ( Live Rekeying ) をサポートしており、ファイルシステムがマウントした状態でも、AWS の各種鍵を更新することができます。また、ObjectiveFS では、自動 ( IAM ロールを使用 ) または手動で、鍵の更新を行えます。
ファイルシステム プール ( Filesystem Pool )
ファイルシステム プールを使用することにより、単一の S3 バケット内に、複数のファイルシステムを作成することができます。ファイルシステム プールを使用すれば、ファイルシステムが複数ある場合、その管理を簡素化できます。また、プールを使用すれば、たとえば、チーム別、部署別などのように、ファイルシステムを構成することができます。
管理者モード ( Admin Mode )
管理者モードでは、ファイルシステムの管理を、「プログラム的に」、簡単に行えます。管理者モードを使用すれば、ファイルシステムの作成・削除を、スクリプトで簡単に行うことができます。
ユーザー ID とグループ ID のマッピング
ユーザー ID・グループ ID のマッピング機能を使用することにより、ローカルで使用しているユーザー ID・グループ ID と外部のファイルシステム上の ID を、紐づけ ( マッピング ) することができます。重複・衝突の恐れがある ID がシステム間にある場合に、それぞれのユーザーと ID を、任意に紐づけできるため、この機能は便利です。
HTTP プロキシのサポート
ObjectiveFS では、オブジェクトストアへのアクセス時に、HTTP プロキシを使用することもできます。これにより、企業のネットワーク運用ポリシーにも適合させることができます。また、オブジェクトストアへのアクセス時に、キャッシング プロキシ ( caching proxy ) を経由させることもできます。
セキュリティーとデータの完全性
エンドツーエンドでの暗号化
データは、ローカル ( サーバー上 ) で暗号化されます。また、暗号化には、「あなたしかしらない鍵」が使用されます。データは、その状態 ( 格納中・送受信中 ) にかかわらず、暗号化されたままになります。ObjetviceFS では、NaCl ( Networking and Crytography library ) を使用しており、キャッシュタイミング攻撃からもデータを守ってくれます ( NaCI では、Salsa20 アルゴリズムと Poly1305 アルゴリズムを使用 )。また、NaCl では、秘密情報に基づく分岐処理を行わず、また、ルックアップテーブルのインデックスにも秘密情報を使用しないため、マルチテナント型の VM 環境でも、データは安全に保護されます。
AWS KMS とサーバー側での暗号化 ( SSE )
データは、クライアント側で常に暗号化され、データの状態 ( 送受信中、格納中 ) にかかわらず、保護されています。SSE を併用する場合、ObjectiveFS では、AWS の SSE をサポートしています。なお、暗号化方式としては、SSE-S3 ( Amazon S3 側で管理している鍵を使用した SSE ) と SSE-KMS ( AWS KMS 側で管理している鍵を使用した SSE ) が使用できます。
データの完全性検証
ObjectiveFS では、強力なチェックサムを使用し、データの完全性を検証して、欠損・悪意のある攻撃からデータを守ります。チェックサムと一致しない場合には、再処理が行われます。