小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

對(duì)象存儲(chǔ)服務(wù)

 abin30 2021-03-28

Mino

對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,OSS)是一種海量、安全、低成本、高可靠的云存儲(chǔ)服務(wù),適合存放任意類型的文件。容量和處理能力彈性擴(kuò)展,多種存儲(chǔ)類型供選擇,全面優(yōu)化存儲(chǔ)成本。

對(duì)象存儲(chǔ)服務(wù)#

在項(xiàng)目開發(fā)過(guò)程中,我們會(huì)產(chǎn)生大量的對(duì)象數(shù)據(jù),包括:日志文件,數(shù)據(jù)庫(kù)腳本文件、安裝包,容器鏡像,圖像、視頻等等,我們不僅僅是需要有一個(gè)集中的地方來(lái)存儲(chǔ),還需要能基于 Web 的方式來(lái)訪問(wèn)它們,以往我們有以下幾種方法來(lái)解決:

  • 阿里云、Azure 等云服務(wù)商提供的SaaS 級(jí)別的 OSS 服務(wù)
  • 自己搭建 NAS 網(wǎng)絡(luò)存儲(chǔ)通過(guò) Samba 服務(wù)來(lái)訪問(wèn)
  • 自己搭建 FTP 服務(wù)器來(lái)存儲(chǔ)

image.png

本篇文章主要介紹下其中的Minio方案

Minio#


Minio是GlusterFS創(chuàng)始人之一Anand Babu Periasamy發(fā)布新的開源項(xiàng)目。Minio兼容Amason的S3分布式對(duì)象存儲(chǔ)項(xiàng)目,采用Golang實(shí)現(xiàn),客戶端支持Java,Python,Javacript, Golang語(yǔ)言。

Minio是建立在云原生的基礎(chǔ)上;有分布式和共享存儲(chǔ)等功能;旨在多租戶環(huán)境中以可持續(xù)的方式進(jìn)行擴(kuò)展的對(duì)象存儲(chǔ)服務(wù)。它最適合存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù),如:照片、視頻、日志文件、容器/虛擬機(jī)/映像等,單次存儲(chǔ)對(duì)象的大小最大可達(dá)5TB

參考#

Minio 架構(gòu)#

image.png

左邊是 MINIO 集群的示意圖,整個(gè)集群是由多個(gè)角色完全相同的節(jié)點(diǎn)所組成的。因?yàn)闆](méi)有特殊的節(jié)點(diǎn),所以任何節(jié)點(diǎn)宕機(jī)都不會(huì)影響整個(gè)集群節(jié)點(diǎn)之間的通信。通過(guò) rest 跟 RPC 去通信的,主要是實(shí)現(xiàn)分布式的鎖跟文件的一些操作

右邊這張圖是單個(gè)節(jié)點(diǎn)的示意圖,每個(gè)節(jié)點(diǎn)都單獨(dú)對(duì)外提供兼容 S3 的服務(wù)

為什么要用 Minio#

  • 1、Minio 有良好的存儲(chǔ)機(jī)制
  • 2、Minio 有很好糾刪碼的算法與擦除編碼算法
  • 3、擁有RS code 編碼數(shù)據(jù)恢復(fù)原理
  • 4、公司做強(qiáng)做大時(shí),數(shù)據(jù)的擁有重要性,對(duì)數(shù)據(jù)治理與大數(shù)據(jù)分析做準(zhǔn)備。
  • 5、搭建自己的一套文件系統(tǒng)服務(wù),對(duì)文件數(shù)據(jù)進(jìn)行安全保護(hù)。
  • 6、擁有自己的平臺(tái),不限于其他方限制。

存儲(chǔ)機(jī)制#

  • Minio使用糾刪碼erasure code和校驗(yàn)和checksum來(lái)保護(hù)數(shù)據(jù)免受硬件故障和無(wú)聲數(shù)據(jù)損壞。 即便丟失一半數(shù)量(N/2)的硬盤,仍然可以恢復(fù)數(shù)據(jù)。

糾刪碼#

  • 糾刪碼是一種恢復(fù)丟失和損壞數(shù)據(jù)的數(shù)學(xué)算法,目前,糾刪碼技術(shù)在分布式存儲(chǔ)系統(tǒng)中的應(yīng)用主要有三類,陣列糾刪碼(Array Code: RAID5、RAID6 等)、RS(Reed-Solomon)里德-所羅門類糾刪碼和 LDPC(LowDensity Parity Check Code)低密度奇偶校驗(yàn)糾刪碼。Erasure Code 是一種編碼技術(shù),它可以將 n 份原始數(shù)據(jù),增加 m 份數(shù)據(jù),并能通過(guò) n+m 份中的任意 n 份數(shù)據(jù),還原為原始數(shù)據(jù)。即如果有任意小于等于 m 份的數(shù)據(jù)失效,仍然能通過(guò)剩下的數(shù)據(jù)還原出來(lái)

MinIO概念#

如下圖,每一行是一個(gè)機(jī)器節(jié)點(diǎn),這里有32個(gè)集群,每個(gè)節(jié)點(diǎn)里有一個(gè)小方塊,我們稱之為Drive,Drive可簡(jiǎn)單地理解為磁盤。一個(gè)節(jié)點(diǎn)有32個(gè)Drive,相當(dāng)于32個(gè)磁盤。

Set是一組Drive的集合,所有紅色標(biāo)識(shí)的Drive組成了一個(gè)Set。

image.png
一個(gè)對(duì)象存儲(chǔ)在一個(gè)Set上; 一個(gè)集群劃分為多個(gè)Set
一個(gè)Set包含的Drive數(shù)量是固定的, 默認(rèn)由系統(tǒng)根據(jù)集群規(guī)模自動(dòng)計(jì)算得出 MINIO_ERASURE_SET_DRIVE_COUNT
一個(gè)SET中的Drive盡可能分布在不同的節(jié)點(diǎn)上

部署#

Minio 提供了兩種部署方式:?jiǎn)螜C(jī)部署和分布式,兩種部署方式都非常簡(jiǎn)單,其中分布式部署還提供了糾刪碼功能來(lái)降低數(shù)據(jù)丟失的風(fēng)險(xiǎn)

單機(jī)部署:#

wget https://dl./server/minio/release/linux-amd64/minio chmod +x minio ./minio server /data``  #``若``/data``目錄不存在,要新建一個(gè)

Docker 部署Minio#

mkdir /data/minio-data&&mkdir /data/minio-config # 創(chuàng)建一個(gè)數(shù)據(jù)存儲(chǔ)目錄
docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=admin" -e "MINIO_SECRET_KEY=admin123456" -v /data/minio-data:/data -v /data/minio-config:/root/.minio minio/minio server /data

http://localhost:9000/ 即可登陸Minio 的管理界面

image.png

分布式Minio#

image.png
單機(jī)Minio服務(wù)存在單點(diǎn)故障,相反,如果是一個(gè)有 m 臺(tái)服務(wù)器, n 塊硬盤的分布式Minio,只要有 m/2 臺(tái)服務(wù)器或者 m*n/2 及更多硬盤在線,你的數(shù)據(jù)就是安全的。

例如,一個(gè)16節(jié)點(diǎn)的Minio集群,每個(gè)節(jié)點(diǎn)200塊硬盤,就算8臺(tái)服務(wù)器宕機(jī),即大概有1600塊硬盤,這個(gè)集群仍然是可讀的,不過(guò)你需要9臺(tái)服務(wù)器在線才能寫數(shù)據(jù)。

export MINIO_ACCESS_KEY=<ACCESS_KEY>
export MINIO_SECRET_KEY=<SECRET_KEY>
minio server http://host{1...n}/export{1...m} http://host{1...o}/export{1...m}

當(dāng)然如果我們只有一臺(tái)機(jī)器,但是想用糾刪碼的功能,也可以直接配置使用多個(gè)本地盤
minio server /data1 /data2 /data3 ... /data8

Minio配置#

默認(rèn)的配置目錄是 ${HOME}/.minio,你可以使用--config-dir命令行選項(xiàng)重寫之。MinIO server在首次啟動(dòng)時(shí)會(huì)生成一個(gè)新的config.json,里面帶有自動(dòng)生成的訪問(wèn)憑據(jù)。
minio server --config-dir /etc/minio /data

  • 證書目錄

TLS證書存在${HOME}/.minio/certs目錄下,你需要將證書放在該目錄下來(lái)啟用HTTPS

  • 憑據(jù)

只能通過(guò)環(huán)境變量MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 更改MinIO的admin憑據(jù)和root憑據(jù)。使用這兩個(gè)值的組合,MinIO加密存儲(chǔ)在后端的配置

export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minio13
minio server /data

如何存儲(chǔ)和訪問(wèn)對(duì)象#

將對(duì)象數(shù)據(jù)存儲(chǔ)到 Minio 中有以下幾種方式:
· 通過(guò) MINIO CLIENT
· 通過(guò) MINIO SDK 目前支持的語(yǔ)言包括:Go,Java,Node.js,Python,.NET
· 通過(guò)瀏覽器訪問(wèn) Web 管理界面,在管理界面中上傳和下載對(duì)象
· 如果你有存儲(chǔ)目錄 minio-data 的賬號(hào)和訪問(wèn)權(quán)限,可以直接使用 SCP 命令將數(shù)據(jù)寫入磁盤

MinIO Client (mc)#

wget https://dl./client/mc/release/linux-amd64/mc
chmod +x mc

MinIO Client (mc)為ls,cat,cp,mirror,diff,find等UNIX命令提供了一種替代方案。它支持文件系統(tǒng)和兼容Amazon S3的云存儲(chǔ)服務(wù)(AWS Signature v2和v4)。

命令使用
ls       列出文件和文件夾。
mb       創(chuàng)建一個(gè)存儲(chǔ)桶或一個(gè)文件夾。
cat      顯示文件和對(duì)象內(nèi)容。
pipe     將一個(gè)STDIN重定向到一個(gè)對(duì)象或者文件或者STDOUT。
share    生成用于共享的URL。
cp       拷貝文件和對(duì)象。
mirror   給存儲(chǔ)桶和文件夾做鏡像。
find     基于參數(shù)查找文件。
diff     對(duì)兩個(gè)文件夾或者存儲(chǔ)桶比較差異。
rm       刪除文件和對(duì)象。
events   管理對(duì)象通知。
watch    監(jiān)聽(tīng)文件和對(duì)象的事件。
policy   管理訪問(wèn)策略。
session  為cp命令管理保存的會(huì)話。
config   管理mc配置文件。
update   檢查軟件更新。
version  輸出版本信息。

列出Mino服務(wù)端

image.png

命令行創(chuàng)建bucket

image.png

image.png

通過(guò)代碼存儲(chǔ)對(duì)象#

// 構(gòu)造訪問(wèn)對(duì)象
var minio = new MinioClient("localhost:9000","accessKey","secretKey");
// 輸出所有的 Buckets 
var rs = minio.ListBucketsAsync();
foreach (varbucket in rs.Result.Buckets)
{
    Console.Out.WriteLine(bucket.Name + " " + bucket.CreationDateDateTime);
}
// 存儲(chǔ)對(duì)象
var bucketName = "logs";
var objectName = "logs.zip";
var filePath = "c:\\logs.zip";
var contentType = "application/zip";
minio.PutObjectAsync(bucketName, objectName, filePath, contentType);
// 獲取對(duì)象
var find  = minio.GetObjectAsync(bucketName, objectName)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多