最終更新日:2025-06-30 17:29:50
この章では、WOSGatewayとGoofysをダウンロード・インストールしてオブジェクトストレージをマウントする方法を紹介します。
WOSGateway(ストレージゲートウェイ)はCDNetworksが開発した高性能ゲートウェイツールで、キャッシュ機能、NFS共有、SMB共有をサポートしています。これにより、Linux上でオブジェクトストレージサービス(OSS)バケットをあたかもローカルファイルシステムのようにマウントできます。これにより、ローカルファイルを管理するのと同じアプローチでOSSオブジェクトを扱うことが可能になります。
WOSGatewayの使用には、サーバーに100GB以上のストレージスペースがキャッシュディスクとして利用可能である必要があります。
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-13.noarch.rpm
rpm -Uvh epel-release-7-13.noarch.rpm
yum -y install leveldb
[wosgw_ctl]
# アクセスキー認証情報
AK = "your ak"
SK = "your sk"
# エンドポイントアドレス
server = "http://endpoint"
# (Bucket)バケット名
bucket = "regionName"
# ローカルマウントディレクトリ
mount_dir = "/mnt/xxx"
# ローカルキャッシュディレクトリ
use_cache = "/cache5/s3fs_cache"
conf_path = "/etc/wosgw/wosgw.conf"
client = "client.wosgw"
[params]
args = [
"-o enable_noobj_cache",
"-o ensure_diskfree=300",
"-o use_xattr",
"-o allow_other",
"-o umask=000,noatime",
"-o force_purge_rocksdb_stat",
"-o use_path_request_style",
"-o curldbg",
"-o dbglevel=dbg",
]
| 設定 | 必須 | 例 | 設定上の注意 |
|---|---|---|---|
| allow_other | はい | -o allow_other | デフォルト固定オプションで、サーバーにログインした任意のユーザーがマウントディレクトリを使用でき、NFV/SMB共有の作成に使用できます。 |
| rw | はい | -o rw | 読み取り/書き込み権限を示します。 |
| umask | はい | -o umask=000 | マウントされたリソースのアクセス権限を設定します。umask = 000の場合、ファイル権限は777(読み取り、書き込み、実行)に設定されます。 |
| noatime | はい | -o noatime | アクセス時間の追跡を無効にするには値を0に設定します。 |
| use_cache | はい | -o use_cache=/cache/wos-cache | ストレージゲートウェイのキャッシュパスアドレスを指定します。 |
| ensure_diskfree | いいえ | -o ensure_diskfree=300 | ファイル書き込みのための十分なスペースを確保するため、少なくとも300Mのディスクスペースを予約します。ストレージゲートウェイはデフォルトでディスク容量の20%を予約するため、このオプションは省略可能です。 |
| use_xattr | はい | -o use_xattr | ファイル拡張属性の設定をサポートします。 |
| use_path_request_style | 推奨 | -o use_path_request_style | パスベースアクセスを使用し、URLがIPアドレスの場合、DNS解決エラーを回避するためにマウントコマンドでこのパラメータを使用する必要があります。 |
| enable_noobj_cache | はい | -o enable_noobj_cache | このパラメータを設定すると、WOSGWが送信するバケットリスト要求数が減少し、パフォーマンスが向上します。 |
| max_stat_cache_size | 推奨 | -o max_stat_cache_size=1000000 | デフォルトは100,000です。メモリに保存できる最大statキャッシュエントリ数です。パフォーマンス向上のため、より大きな値を設定することをお勧めします。 |
| force_purge_rocksdb_stat | はい | -o force_purge_rocksdb_stat | データの一貫性を確保するため、データベースを強制的にクリアします。 |
| dbglevel | いいえ | -o dbglevel=debug | デバッグ目的で使用され、通常の使用には推奨されません。 |
| multipart_size | いいえ | -o multipart_size=10 | 個々のチャンクのサイズを設定します。 |
| max_multipart_cnt | いいえ | -o max_multipart_cnt=10000 | 最大チャンク数を設定します。 |
wosgw_run_mode=async
debug_wosgw=60
wosgw_rgw_host_regex = ".*"
wosgw_cachefile_life_time=1
wosgw_cachefile_remove_size=200
wosgw_cachefile_remove_interval=2
wosgw_cachefile_remove_thread_num=2
wosgw_cachefile_quantity_watermark_high=0
wosgw_cachefile_quantity_watermark_low=0
wosgw_cachefile_gc_thread_num=3
wosgw_db_path=/cache2/wosgw-db
wosgw_stat_mode=1
wosgw_sync_log_interval=10
wosgw_num_shards=5
wosgw_sync_sleep_time=0
wosgw_resume_upload=True
wosgw_vid_prealloc=100
[client.wosgw.default]
log file=/cache2/wosgw-log/$name.log
admin socket = /usr/local/etc/wosgw/$name.asok
| 設定 | 必須 | 例 | 設定上の注意 |
|---|---|---|---|
| wosgw_run_mode | はい | wosgw_run_mode=asyncV | デフォルト値は’async’で、サービスが非同期モードで動作することを意味します。マウントディレクトリに書き込まれたファイルは、バックエンドに同期される前に最初にローカルキャッシュディスク上に存在します。 |
| wosgw_stat_mode | いいえ | wosgw_stat_mode=1 | デフォルト値は1で、メタデータの保存モードを設定します。これにより、メタデータがローカルディスクに書き込まれる方法が決まります。 |
| wosgw_db_path | いいえ | db wosgw_db_path=/cache/db | 非同期モードで、データベースの保存パスを設定します。スタンドアロンdb設定には推奨されません。 |
| wosgw_log_db_path | はい | wosgw_log_db_path=/cache/db_log | デフォルト値がないため、必ず設定する必要があります。非同期ログデータベースを保存する場所です。ストレージゲートウェイのパフォーマンスに影響を与えないよう、SSDディスク(レプリケーション付き)に配置することをお勧めします。 |
| wosgw_stat_db_path | はい | wosgw_stat_db_path=/cache/db_stat | デフォルト値がないため、必ず設定する必要があります。メタデータデータベースを保存する場所です。ストレージゲートウェイのパフォーマンスに影響を与えないよう、SSDディスク(レプリケーション付き)に配置することをお勧めします。 |
| wosgw_lc_db_path | はい | wosgw_lc_db_path=/cache/db_lc | デフォルト値がないため、必ず設定する必要があります。キャッシュファイルデータベースを保存する場所です。ストレージゲートウェイのパフォーマンスに影響を与えないよう、SSDディスク(レプリケーション付き)に配置することをお勧めします。 |
| wosgw_fault_db_path | はい | wosgw_fault_db_path=/cache/db_fault | デフォルト値がないため、必ず設定する必要があります。シャードデータベースを保存する場所です。ストレージゲートウェイのパフォーマンスに影響を与えないよう、SSDディスク(レプリケーション付き)に配置することをお勧めします。 wosgw_cachefile_life_time オプション、推奨 wosgw_cachefile_life_time=1 デフォルト値は24時間です。キャッシュファイルの有効期限を設定するために使用され、有効範囲は[0.00028, 2^20]です。 |
| wosgw_cachefile_life_time | いいえ | wosgw_cachefile_life_time=1 | デフォルト値は24時間です。キャッシュファイルの有効期限を設定するために使用され、有効範囲は[0.00028, 2^20]です。 |
| wosgw_cachefile_remove_size | いいえ | wosgw_cachefile_remove_size=200 | デフォルト値は100 MBです。条件が満たされたときにキャッシュクリーンアップを試みる総ファイルサイズを設定するために使用され、有効範囲は[100, 2^31-1]です。 |
| wosgw_cachefile_remove_interval | いいえ | wosgw_cachefile_remove_interval=2 | デフォルト値は2秒です。ディスクスペースのチェック間隔を設定するために使用され、有効範囲は[2, 2^31-1]です。 |
| wosgw_cachefile_remove_thread_num | いいえ | wosgw_cachefile_remove_thread_num=2 | デフォルト値は2です。キャッシュクリーンアップのためのスレッド数を設定するために使用され、有効範囲は[2, 32]です。 |
| wosgw_cachefile_quantity_watermark_high | いいえ | wosgw_cachefile_quantity_watermark_high=0 | デフォルト値は0.7です。ディスク使用量がこのレベルに達したときにクリーンアップをトリガーするディスクチェックのための高ウォーターマークの割合を設定し、有効範囲は[0, 0.8]です。 |
| wosgw_cachefile_quantity_watermark_low | いいえ | wosgw_cachefile_quantity_watermark_low=0 | デフォルト値は0.6です。ディスク使用量がこのレベルを下回ったときにクリーンアップを防ぐディスクチェックのための低ウォーターマークの割合を設定し、有効範囲は[0, 高ウォーターマーク]です。 |
| wosgw_cachefile_gc_thread_num | いいえ | wosgw_cachefile_gc_thread_num=3 | デフォルト値は16です。キャッシュファイルレコードを削除するためのスレッド数を設定し、有効範囲は[1, 32]です。 |
| wosgw_cachefile_remove_count | いいえ | wosgw_cachefile_gc_thread_num=10000 | デフォルト値は100,000です。条件が満たされ、総ファイルサイズが設定されたサイズを満たさない場合に削除するファイルの総数を設定します。 |
| wosgw_sync_log_interval | いいえ | wosgw_sync_log_interval=10 | デフォルト値は120秒です。非同期ログ処理の間隔を設定し、操作ログが生成されてからバックエンドに同期されるまでの時間を決定します。有効範囲は[10, 2^31-1]です。 |
| wosgw_num_shards | いいえ | wosgw_num_shards=5 | デフォルト値は5です。非同期ログ処理のためのスレッド数を設定します。最大設定はCPUコア数の2倍を超えてはならず、有効範囲は[1, 2^31-1]です。 |
| wosgw_sync_sleep_time | いいえ | wosgw_sync_sleep_time=0 | デフォルト値は30秒です。リモート操作を同期する前にバックエンドへの接続を待つ時間を設定し、有効範囲は[1, 2^31-1]です。 |
| wosgw_resume_upload | いいえ | wosgw_resume_upload=True | デフォルト値はFalseです。アップロード再開機能を有効または無効にし、有効な値は[True, False]です。 |
| wosgw_vid_prealloc | いいえ | wosgw_vid_prealloc=1024 | デフォルト値は1024です。挿入されたログのバージョンID割り当てステップを設定します。これは機能には影響しませんが、パフォーマンスに影響する可能性があります。デフォルト値の使用をお勧めします。 |
| debug_wosgw | いいえ | debug_wosgw=60 | ストレージゲートウェイインスタンスのログレベルを設定し、デフォルトは1です。 |
| og file | いいえ | log file=/etc/log/$name.log | ストレージゲートウェイインスタンスのログパスを設定します。 |
| admin socket | いいえ | admin socket = /etc/log/$name.asok | ストレージゲートウェイインスタンスのソケットパスを設定します。 |
| wosgw_rgw_host_regex | いいえ | wosgw_rgw_host_regex=.* | 正規表現ステートメントでサーバー設定をチェックするために使用されます。デフォルト設定はIP |
| wosgw_load_multi_thread_enable | いいえ | wosgw_load_multi_thread_enable = False | デフォルト値はFalseです。バケットスレッドの初期化スイッチを設定します。有効な値は[True, False]です。現在、上位レベルのs3はマルチスレッドをサポートしていません。 |
| wosgw_load_max_thread_num | いいえ | wosgw_load_max_thread_num = 100 | デフォルト値は20です。マルチスレッド取得のためのスレッド数を指定します。 |
| wosgw_fullsync_threads | いいえ | wosgw_fullsync_threads = 10 | デフォルト値は5です。障害発生時の完全同期のためのスレッド数を指定します。 |
| wosgw_multi_copy_source_size | いいえ | wosgw_multi_copy_source_size = 100 | デフォルト値は128 MBです。個々のサイズが大きすぎるためにタイムアウトが発生しないように、multipart_copyでの各セグメントのサイズを設定します。タイムアウトが続く場合は、それに応じて値を減らすことを検討してください。 |
| wosgw_rename_max_file_num | いいえ | wosgw_rename_max_file_num= 10000 | デフォルト値は100,000です。'mv’操作を試みるときのディレクトリ内の最大ファイルおよびフォルダ数を指定します。この制限を超えると、'mv’操作は失敗します。 |
wosgw_ctl -action start
wosgw_ctl -action stop
Goofysは、ローカルファイルシステムにS3ストレージバケットをマウントできるようにするオープンソースツールです。
vim ~/.aws/credentials
[default]
aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY
./goofys --endpoint http://s3-cn-south-6.wcsapi.com --region cn-south-6 yourBucketName /mnt/mount -o allow_other
mount
> bucket on /mnt/mount type fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions)