OSSFSベースのアリクラウドOSSのローカル使用
8776 ワード
概要:制限
ossfsが提供する機能と性能は、ローカルファイルシステムと比較して、いくつかの限界があります.詳細は次のとおりです.ランダムまたは追加でファイルを書くと、ファイル全体が書き換えられます. メタデータ操作、例えばlist directoryは、ossサーバ へのリモートアクセスが必要であるため、パフォーマンスが劣る.ファイル/フォルダのrename操作は原子の ではありません.複数のクライアントが同じoss bucketをマウントする場合、ユーザに依存して各クライアントの動作を調整します.たとえば、複数のクライアントが同じファイルを書くのを避けるなどします. はhard linkをサポートしていません. は、高同時読み取り/書き込みのシーンには適していません.これにより、システムのloadが 上昇します.
一、ossfsをインストールする前に、対応する依存ライブラリをインストールする.
ossfsソースコードをインストールしgithubから取得できます
二、相応のファイル設定bucket name、access key/id情報を構成し、/etc/passwd-ossfsファイルに保存する.このファイルの権限は正しく設定しなければならないので、640に設定することを提案する.
oss対応のbucketをローカルマウントポイントossfs my-bucket my-mount-point-ourl=my-oss-endpointにマウント
ossのアンインストール
問題:
上の間違いの最も主要な一言は:
要求された時間と現在の時間の違いが大きすぎてローカル時間を表示しようとすることを意味します.
やはり1時間の差は同期時間を更新するだけです
再マウント
エラーが発生した場合にdebug情報ログを追加してみます
ログ情報を表示し、解決します.
ossfsが提供する機能と性能は、ローカルファイルシステムと比較して、いくつかの限界があります.詳細は次のとおりです.
一、ossfsをインストールする前に、対応する依存ライブラリをインストールする.
Ubuntu 14.04:
sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev \
libfuse-dev libssl-dev libxml2-dev make pkg-config
CentOS 7.0:
sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel \
fuse-devel make openssl-devel
ossfsソースコードをインストールしgithubから取得できます
git clone https://github.com/aliyun/ossfs.git
cd ossfs
./autogen.sh
./configure
make
sudo make install
二、相応のファイル設定bucket name、access key/id情報を構成し、/etc/passwd-ossfsファイルに保存する.このファイルの権限は正しく設定しなければならないので、640に設定することを提案する.
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
oss対応のbucketをローカルマウントポイントossfs my-bucket my-mount-point-ourl=my-oss-endpointにマウント
example:
my-bucket bucket /tmp/ossfs ,AccessKeyId faint, AccessKeySecret 123,oss endpoint http://oss-cn-hangzhou.aliyuncs.com
echo my-bucket:faint:123 > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com
ossのアンインストール
bucket:
umount /tmp/ossfs # root user
fusermount -u /tmp/ossfs # non-root user
問題:
ossfs test /ossfsfile -ourl=http://oss-cn-hangzhou.aliyuncs.com
[ERR] curl.cpp:CheckBucket(2625): Check bucket failed, OSS response:
<Error>
<Code>RequestTimeTooSkewedCode>
<Message>The difference between the request time and the current time is too large.Message>
<RequestId>58F6D89ECBB6F0795271EEBARequestId>
<HostId>test.oss-cn-hangzhou.aliyuncs.comHostId>
<MaxAllowedSkewMilliseconds>900000MaxAllowedSkewMilliseconds>
<RequestTime>2017-04-19T04:21:16.000ZRequestTime>
<ServerTime>2017-04-19T03:25:18.000ZServerTime>
Error>
[ERR] curl.cpp:CheckBucket(2625): Check bucket failed, OSS response:
<Error>
<Code>RequestTimeTooSkewedCode>
<Message>The difference between the request time and the current time is too large.Message>
<RequestId>58F6D89ECBB6F0795271EEC1RequestId>
<HostId>test.oss-cn-hangzhou.aliyuncs.comHostId>
<MaxAllowedSkewMilliseconds>900000MaxAllowedSkewMilliseconds>
<RequestTime>2017-04-19T04:21:16.000ZRequestTime>
<ServerTime>2017-04-19T03:25:18.000ZServerTime>
Error>
[CRT] s3fs.cpp:s3fs_check_service(3690): invalid credentials - result of checking service.
ossfs: Check OSS service failed. Run with -f option for more details.
上の間違いの最も主要な一言は:
The difference between the request time and the current time is too large.
要求された時間と現在の時間の違いが大きすぎてローカル時間を表示しようとすることを意味します.
[root@storm1 tmp]# date
Wed Apr 19 16:47:47 CST 2017
やはり1時間の差は同期時間を更新するだけです
ntpdate cn.pool.ntp.org
19 Apr 15:52:39 ntpdate[71442]: step time server 51.15.41.135 offset -3357.358058 sec
再マウント
ossfs test /ossfsfile -ourl=http://oss-cn-hangzhou.aliyuncs.com
エラーが発生した場合にdebug情報ログを追加してみます
ossfs test /ossfsfile -ourl=http://oss-cn-hangzhou.aliyuncs.com -o dbglevel=debug -f -d > /tmp/fs.log 2>&1
ログ情報を表示し、解決します.