fs文件存儲
Ⅰ Kubernetes 基於GlusterFS的動態存儲管理StorageClass
最近由於需要部署有狀態服務,沒有雲環境的支持,不能很好的通過cloud provider調用雲磁碟EBS,所以在node節點部署了一套glusterFS分布式文件存儲系統,用來提供非結構化數據存儲,存儲圖片,大文件等等.
Kubernetes中使用GlusterFS作為持久化存儲,要提供storageClass使用需要依賴Heketi工具。Heketi是一個具有resetful介面的glusterfs管理程序,作為kubernetes的Storage存儲的external provisioner。 「Heketi提供了一個RESTful管理界面,可用於管理GlusterFS卷的生命周期。藉助Heketi,像OpenStack Manila,Kubernetes和OpenShift這樣的雲服務可以動態地配置GlusterFS卷和任何支持的持久性類型。Heketi將自動確定整個集群的brick位置,確保將brick及其副本放置在不同的故障域中。Heketi還支持任意數量的GlusterFS集群,允許雲服務提供網路文件存儲,而不受限於單個GlusterFS集群。
Heketi是由golang編寫,直接靜態編譯運行二進制即可也可以通過yum安裝以及docker部署,主要會產生db文件存儲cluster、node、device、volume等信息。
我們glusterFS部署在k8s集群外,所以heketi通過ssh管理glusterFS。需要創建免秘鑰登陸到所有glusterFS節點。
參考 https://github.com/heketi/heketi/blob/master/client/cli/go/topology-sample.json
注意:
由於我們開啟了heketi認證,所以每次執行heketi-cli操作時,都需要帶上一堆的認證欄位,比較麻煩,我在這里創建一個別名來避免相關操作:
注意: 如果heketi 運行賬號為非root,需要保證有sudo許可權。
機器只是作為gluster的運行單元,volume是基於device創建的。同時需要特別說明的是,目前heketi僅支持使用裸分區或裸磁碟(未格式化)添加為device,不支持文件系統。
以上ad-hoc命令均可通過配置文件創建然後導入:
創建:
這里僅僅是做一個測試,實際使用中,會由kubernetes自動創建pv.
創建一個大小為3G,副本為2的volume
添加storageclass-glusterfs.yaml文件,內容如下:
注意:
更詳細的用法參考: https://kubernetes.io/docs/concepts/storage/storage-classes/#glusterfs
我們可以看到RECLAIM POLICY: Retain ,經過測試
kubernetes pv和gluster volume不一致時,可使用heketi來統一管理volume.此文檔heketi和glusterfs都在kubernetes集群外部署。對於支持AWS EBS的磁碟,可通過EBS storageClass方式將glusterFS heketi部署在容器中管理.參考 https://github.com/gluster/gluster-kubernetes
Ⅱ 存儲服務分類:塊存儲、文件存儲、對象存儲
1、關於文件存儲
文件儲存最具代表性的NAS,對於大多數用戶來說,NAS就類似於一個共享文件夾,用戶可以直接將數據放在NAS上,用於傳輸。同時,NAS是通過網路達成儲存的目的,依附於TCP/IP網路協議棧,這也就是NAS存儲於上文的DAS和SAN存儲最大的不同點。
2、關於塊儲存
塊儲存我們可以將其看成裸盤,但是裸盤是不能被系統訪問,不過,可以格式化為你指定的文件系統Ext3,Ext4,NTFS,FAT32等形式,這樣便可以被系統訪問了。常見的塊儲存為DAS、FC-SAN、IP-SAN三種類型。同時,塊儲存也是哦我們最常見的一種儲存模式,比如pc硬碟、伺服器硬碟。
3、關於對象儲存
這種儲存方式還是比較新的,常見的對象儲存開源實現有Ceph的RADOS、Openstack的swift、AWS s3等;常見分布式文件系統有lustre、glusterfs、HDFS等。對象儲存可以將其看作一家高級餐廳代客停車,客戶需要車,你將鑰匙給到別人,換來一張收據。
總體來說,三種儲存方式,可從表面和本質著手,對象儲存支持restful介面,塊存儲的用戶是可以讀寫塊設備的軟體系統,例如傳統的文件系統、資料庫;文件存儲的用戶是自然人;對象存儲的用戶則是其它計算機軟體。
Ⅲ 微信小程序fs.readfilesync如何使用雲存儲文件路
微信小程序fs.readfilesync使用雲存儲文件路打開雲開發點擊存儲管理,到存儲管理這里可以上傳文件。點擊上傳文件可以從本地把自己的文件上傳到這里,值得注意的是在自己上傳文件的時候盡量取好名字,這樣會減少自己操作的負擔。要實現把這里的文件存儲到資料庫里。
Ⅳ 對象存儲、文件存儲和塊存儲的區別是什麼
對象存儲、文件存儲和塊存儲的區別如下:
1、速度不同
塊存儲:低延遲(10ms),熱點突出;
文件存儲:不同技術各有不同;
對象存儲:100ms-1s,冷數據;
2、可分步性不同
塊存儲:異地不現實;
文件存儲:可分布式,但有瓶頸;
對象存儲:分步並發能力高;
3、文件大小不同
塊存儲:大小都可以,熱點突出;
文件存儲:適合大文件;
對象存儲:適合各種大小;
4、介面不同
塊存儲:Driver,kernel mole ;
文件存儲:POSIX;
對象存儲:Restful API ;
5、典型技術不同
塊存儲:SAN;
文件存儲: HDFS,GFS;
對象存儲:Swift,Amazon S3;
6、適合場景不同
塊存儲:銀行;
文件存儲:數據中心;
對象存儲:網路媒體文件存儲。
(4)fs文件存儲擴展閱讀:
對象存儲、文件存儲和塊存儲的聯系:
通常來講,磁碟陣列都是基於Block塊的存儲,而所有的NAS產品都是文件級存儲。
1. 塊存儲:DAS SAN
a) DAS(Direct Attach Storage): 是直接連接於主機伺服器的一種存儲方式,每台伺服器有獨立的存儲設備,每台主機伺服器的存儲設備無法互通,需要跨主機存取資料室,必須經過相對復雜的設定,若主機分屬不同的操作系統,則更復雜。
應用:單一網路環境下且數據交換量不大,性能要求不高的環境,技術實現較早。
b) SAN(Storage Area Network): 是一種高速(光纖)網路聯接專業主機伺服器的一種存儲方式,此系統會位於主機群的後端,它使用高速I/O聯接方式,如:SCSI,ESCON及Fibre-Channels.特點是,代價高、性能好。但是由於SAN系統的價格較高,且可擴展性較差,已不能滿足成千上萬個CPU規模的系統。
應用:對網速要求高、對數據可靠性和安全性要求高、對數據共享的性能要求高的應用環境中。
2. 文件存儲
通常NAS產品都是文件級存儲。
NAS(Network Attached Storage):是一套網路存儲設備,通常直接連在網路上並提供資料存取服務,一套NAS儲存設備就如同一個提供數據文件服務的系統,特點是性價比高。
它採用NFS或CIFS命令集訪問數據,以文件為傳輸協議,可擴展性好、價格便宜、用戶易管理。目前在集群計算中應用較多的NFS文件系統,但由於NAS的協議開銷高、帶寬低、延遲大,不利於在高性能集群中應用。
3. 對象存儲:
總體上講,對象存儲同時兼具SAN高級直接訪問磁碟特點及NAS的分布式共享特點。
核心是將數據通路(數據讀或寫)和控制通路(元數據)分離,並且基於對象存儲設備(OSD),構建存儲系統,每個對象存儲設備具備一定的職能,能夠自動管理其上的數據分布。
對象儲存結構組成部分(對象、對象存儲設備、元數據伺服器、對象存儲系統的客戶端)