天翼雲應用之-對象存儲掛載

     最近學習了使用如何使用天翼雲對象存儲掛載,通過FUSE實現對將對象存儲掛載進用戶的空間文件系統。

     用戶空間文件系統Filesystem in Userspace,簡稱FUSE)是一個面向類Unix計算機操作系統軟件接口,它使無特權的用戶能夠無需編輯內核代碼而創建自己的文件系統。當前Linux通過內核模塊對此進行支持。一些文件系統如ZFSglusterfslustre使用FUSE實現。Linux用於支持用戶空間文件系統的內核模塊名叫FUSE,FUSE一詞有時特指Linux下的用戶空間文件系統。Linux從2.6.14版本開始通過FUSE模塊支持在用戶空間實現文件系統。

    這裏我們關注的是如何掛載OOS,對於在雲上創建OOS一筆帶過,介紹主要流程和掛載思路,並分別介紹兩種自動掛載方案。

一、天翼雲OOS掛載主要流程

1、在天翼雲oos中創建容器桶,創建accesskey,記錄下容器名(桶名稱)、endpoint、ak及sk信息

2、由於目前不是所有區域都支持oos,默認endpoint指向貴州節點(oos-cn.ctyunapi.cn)

其他地域的endpoint列表如下。

地區 OOS   API Endpoint
北京2 oos-bj2.ctyunapi.cn
內蒙 oos-nm2.ctyunapi.cn
長沙 oos-hncs.ctyunapi.cn
西安 oos-snxa.ctyunapi.cn
杭州 oos-hz.ctyunapi.cn
江蘇 oos-js.ctyunapi.cn
廣州 oos-gz.ctyunapi.cn
北京 oos-hq-bj.ctyunapi.cn
上海 oos-hq-sh.ctyunapi.cn

3、進入客戶主機系統安裝fuse、編譯安裝環境及git

4、通過git克隆s3fs-fuse到本地編譯安裝

5、嘗試手工掛載判斷前面的桶名、endpoint、ak、sk等信息是否有誤

6、設置自動掛載,兩種方式(/etc/rc.local或/etc/fstab)

二、下載安裝s3fs-fuse到本地的詳細命令

yum install -y automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh && ./configure && make && make install

第一行安裝系統所需的編譯環境與fuse支持,第二行通過git克隆s3fs-fuse的源碼到本地目錄,第三行進入本地克隆好的目錄,第四行通過四條組合命令完成本地編譯安裝。

還有一種非常簡單的安裝方式,通過yum安裝

yum install epel-release && yum install s3fs-fuse -y

一條命令搞定s3fs-fuse的安裝。

三、瞭解s3fs-fuse的關鍵信息

s3fs允許Linux和macOS通過FUSE掛載S3存儲桶。s3fs保留文件的本機對象格式,與Amazon S3,Google Cloud Storage和其他基於S3的對象存儲兼容,天翼雲的對象存儲就是兼容S3的。

s3fs密碼文件的默認位置:

  • 使用用戶主目錄中的.passwd-s3fs文件(即$ {HOME} /。passwd-s3fs)
  • 使用系統範圍的/ etc / passwd-s3fs文件

在文件中輸入您的憑據${HOME}/.passwd-s3fs並設置僅所有者權限:

echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs比如當前你使用root用戶登陸,就在/root/下建立一個密碼文件/root/.passwd-s3fs即可,文件採用純文本形式,格式是ak:sk

四、手工掛載命令

桶名:mybucket

endpoint:oos-cn.ctyunapi.cn

ak:2d19d9ef0904a4d5accb

sk:94fd08d6517d43393117ae9ba93da8eb452df431

第一步生成用戶認證文件

echo "2d19d9ef0904a4d5accb:94fd08d6517d43393117ae9ba93da8eb452df431" > /root/.password-s3fs && chmod 600 /root/.password-s3fs

第二步生成掛載目錄

mkdir /home/bucket

第三步完成命令行掛載

s3fs mybucket /home/bucket -o passwd_file=/root/.passwd-s3fs -o url=http://oos-cn.ctyunapi.cn  -o allow_other

 

五、自動掛載兩種方式

1、將掛載命令行加入/etc/rc.local實現開機自動掛載

echo "s3fs mybucket /home/bucket -o passwd_file=/root/.passwd-s3fs -o url=http://oos-cn.ctyunapi.cn" >> /etc/rc.local

注意檢查/etc/rc.local必須要有可執行權限。

2、利用/etc/fstab實現磁盤自動掛載

第一步編輯/etc/fstab,最後一行加入下面命令

s3fs#mybucket /home/bucket  fuse _netdev,allow_other,use_path_request_style,url=http://oos-cn.ctyunapi.cn/ 0 0

第二步掛載

mount -a

六、debug掛載信息

s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs -o dbglevel=info -f -o curldbg

七、s3fs參數使用說明

-o allow_other

本參數用於設置掛載目錄可以被任意登陸服務器的用戶使用,且可以將該掛載目錄用於創建NFS/SMB共享。

-o umask=0

本參數用於設置掛載掛載後資源的訪問權限,確保掛載後所有用戶能夠對掛載目錄下資源具有訪問權限。umask與chmod配套,當設置umask=0時對於文件權限爲777,若需要設置權限爲755則設置umask=022,以此類推配置所需權限

-o max_write

本參數用於設置vfs的上傳塊大小,默認值爲4096,可將該數值設置爲fuse所支持的最大值128k(即設置-o max_write=131072),以提升性能。

-o use_cache

使用內存作爲緩存目錄,而非本地磁盤作爲cache將提升文件讀寫性能,即將該值設置爲-o use_cache=/dev/shm。如果系統內存使用較高則建議另外掛載一個SSD盤作爲緩存目錄

-o enable_noobj_cache

使用本參數後,將減少s3fs發送的列舉桶的請求,從而提升性能。

-o big writes

 開啓本參數後,內核會進行IO合併,對於大塊讀寫,提升性能。

-o sigv2

缺省值爲採用V4鑑權,使用V2鑑權效率更高,兼容性更好。

-o del_cache

文件使用完成後及時清理緩存中的數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章