把物件儲存轉為檔案儲存,到底香不香?

2021-10-06 03:18:15 字數 1291 閱讀 8516

首先打包乙個s3fs的docker映象

from  xx.xx.xx/basic/centos:7.5.1804 

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

如果是docker直接啟動

# docker run -it   --privileged
然後在容器內執行掛載前需要將s3的秘鑰寫入passwd-s3fs

#  echo access_key:secret_key > $/.passwd-s3fs&&chmod 600 $/.passwd-s3fs

# s3fs bucketname /abc/ -o url= -o use_path_request_style -o endpoint=default

掛載成功後便可以像操作本地檔案系統一樣的讀寫資料了。

sh-4.2# cd /abc

sh-4.2# ls

aa abc.txt bb cc kk

可以看到和我們物件儲存裡面的內容是保持一致的(截圖來著我們team自研的物件儲存管理頁面)

是不是很香,如果是在kubernetes的環境中,需要先開啟策略

containers:-

name

: my-container

securitycontext

:privileged

:true

capabilities

:add

:- sys_admin

這種使用方式相對於常規的容器掛載檔案系統的好處有兩點:

第一是避免業務改造**

第二是可以避免主機掛載,如果是主機掛載nas,當nas出現故障後,會導致容器無法刪除、docker hang住等問題。

但這種方式也不是萬能的,畢竟的它的後端還是乙個物件儲存,物件儲存的最佳實踐就是一次寫入,後續都是讀請求。如果有個業務的研發誤用,將s3掛載的目錄用於記錄日誌,那麼無疑是開啟了潘多拉的魔盒,一直put物件。所以我們需要監控每個bucket的讀寫次數並設定告警,避免誤用。所以這樣看來它又並不是那麼香了。

所有的技術都是有適用場景的,沒有銀彈,沒有銀彈,沒有銀彈,重要的事情說三遍。

補充說明:

物件儲存 塊儲存 檔案儲存到底是什麼

分布式儲存的應用場景相對於其儲存介面,現在流行分為三種 物件儲存 也就是通常意義的鍵值儲存,其介面就是簡單的get put del和其他擴充套件,如七牛 又拍 swift s3 塊儲存 這種介面通常以qemu driver或者kernel module的方式存在,這種介面需要實現linux的bloc...

把mysql查詢結果儲存到檔案的shell指令碼

該指令碼是先刪除已經存在的檔案,然後後台執行sql語句將其執行結果以一定的格式寫入檔案 複製 如下 程式設計客棧 bin bas程式設計客棧h if f www.cppcns.comvar lib mysql hell.txt then rm f var lib mysql hell.txt ech...

android工程中把資料儲存到檔案中的class

import android.content.context import android.content.sharedpreferences import android.util.log public class sharedpreferenceshelper return sharedpref...