真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

minio開發(fā)go語言 go minio

MinIO 快速入門之一 —— MinIO 簡(jiǎn)介

MinIO 官網(wǎng)

創(chuàng)新互聯(lián)建站一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),營銷型網(wǎng)站到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長(zhǎng)傾聽企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過十多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)綿陽服務(wù)器托管、app開發(fā)定制、手機(jī)移動(dòng)建站、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)整合營銷。

MinIO 官方GitHub

MinIO 官方文檔

關(guān)于對(duì)象存儲(chǔ),我們可以看下 阿里云OSS 的解釋。

對(duì)象存儲(chǔ)最大的優(yōu)勢(shì)就在于它可以存儲(chǔ)大容量的非結(jié)構(gòu)化數(shù)據(jù),例如圖片、視頻、日志文件、備份數(shù)據(jù)和容器/虛擬機(jī)鏡像等。對(duì)于大多數(shù)的企業(yè)來說,這可以說是最為理想的存儲(chǔ)媒介了。

對(duì)于業(yè)務(wù)已在公有云上的企業(yè)來說,使用公有云提供的 OSS 服務(wù),可以很好的節(jié)省存儲(chǔ)的成本,且一般都提供易接入的 SDK,以阿里云的OSS 服務(wù)為例,在存儲(chǔ)介質(zhì)的上層封裝可標(biāo)注的 RESTful API 接口,使用起來十分方便。

但是對(duì)于一些沒有選擇業(yè)務(wù)上云或者想要下云的企業(yè)來說,要使用公有云的 OSS,在公網(wǎng)帶寬方面就需要有一定的投入,畢竟需要通過公網(wǎng)傳輸,帶寬太小,傳輸速度就會(huì)慢,且在傳輸過程中數(shù)據(jù)的安全性和完整性也有損失的風(fēng)險(xiǎn),走專線的費(fèi)用又十分昂貴,不實(shí)在。

這種情況下,MinIO 就是一個(gè)不錯(cuò)的選擇,麻雀雖小,五臟俱全,企業(yè)可以以此快速構(gòu)建自己內(nèi)部的對(duì)象存儲(chǔ)服務(wù)。

Minio 是個(gè)基于 Golang 編寫的開源對(duì)象存儲(chǔ)套件,基于Apache License v2.0開源協(xié)議,雖然輕量,卻擁有著不錯(cuò)的性能。它兼容亞馬遜S3云存儲(chǔ)服務(wù)接口??梢院芎?jiǎn)單的和其他應(yīng)用結(jié)合使用,例如 NodeJS、Redis、MySQL等。

如下圖,MinIO 的應(yīng)用場(chǎng)景除了可以作為私有云的對(duì)象存儲(chǔ)服務(wù)來使用,也可以作為云對(duì)象存儲(chǔ)的網(wǎng)關(guān)層,無縫對(duì)接 Amazon S3 或者 MicroSoft Azure 。

Minio 使用糾刪碼 erasure code 和校驗(yàn)和 checksum 。 即便丟失一半數(shù)量(N/2)的硬盤,仍然可以恢復(fù)數(shù)據(jù)。

保護(hù)數(shù)據(jù)免受硬件故障和無聲數(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ù),并能通過n+m份中的任意n份數(shù)據(jù),還原為原始數(shù)據(jù)。即如果有任意小于等于m份的數(shù)據(jù)失效,仍然能通過剩下的數(shù)據(jù)還原出來。

Minio采用Reed-Solomon code將對(duì)象拆分成N/2數(shù)據(jù)和N/2 奇偶校驗(yàn)塊。 這就意味著如果是12塊盤,一個(gè)對(duì)象會(huì)被分成6個(gè)數(shù)據(jù)塊、6個(gè)奇偶校驗(yàn)塊,可以丟失任意6塊盤(不管其是存放的數(shù)據(jù)塊還是奇偶校驗(yàn)塊),仍可以從剩下的盤中的數(shù)據(jù)進(jìn)行恢復(fù)。

RS編碼以word為編碼和解碼單位,大的數(shù)據(jù)塊拆分到字長(zhǎng)為w(取值一般為8或者16位)的word,然后對(duì)word進(jìn)行編解碼。 數(shù)據(jù)塊的編碼原理與word編碼原理相同,后文中以word為例說明,變量Di, Ci將代表一個(gè)word。

把輸入數(shù)據(jù)視為向量D=(D1,D2,..., Dn), 編碼后數(shù)據(jù)視為向量(D1, D2,..., Dn, C1, C2,.., Cm),RS編碼可視為如下(圖1)所示矩陣運(yùn)算。

圖1最左邊是編碼矩陣(或稱為生成矩陣、分布矩陣,Distribution Matrix),編碼矩陣需要滿足任意n*n子矩陣可逆。為方便數(shù)據(jù)存儲(chǔ),編碼矩陣上部是單位陣(n行n列),下部是m行n列矩陣。下部矩陣可以選擇范德蒙德矩陣或柯西矩陣。

RS最多能容忍m個(gè)數(shù)據(jù)塊被刪除。 數(shù)據(jù)恢復(fù)的過程如下:

(1)假設(shè)D1、D4、C2丟失,從編碼矩陣中刪掉丟失的數(shù)據(jù)塊/編碼塊對(duì)應(yīng)的行。(圖2、3)

(2)由于B' 是可逆的,記B'的逆矩陣為 (B'^-1),則B' * (B'^-1) = I 單位矩陣。兩邊左乘B' 逆矩陣。 (圖4、5)

(3)得到如下原始數(shù)據(jù)D的計(jì)算公式 。

(4)對(duì)D重新編碼,可得到丟失的編碼

Spring Boot | 整合 Minio 實(shí)現(xiàn)文件上傳

文章目錄:

MinIO 是一個(gè)用 Golang 開發(fā)的基于 Apache License v2.0 源協(xié)議的對(duì)象存儲(chǔ)服務(wù)。

它兼容亞馬遜 S3 云存儲(chǔ)服務(wù)接口,適合存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),例如圖片、視頻、日志文件、備份數(shù)據(jù)和容器/虛擬機(jī)鏡像等,單個(gè)文件可以是任意大小,從幾kb到最大5T不等。

使用 docker 安裝

說明:

9020 為控制臺(tái)訪問端口。

創(chuàng)建存儲(chǔ)桶:

設(shè)置存儲(chǔ)桶權(quán)限:

MinioProperties.java

MinioConfig.java

FILE_NAME_PATTERN 是上傳文件的命名格式。第一個(gè) {} 放的是上傳時(shí)間,格式是 yyyyMMddHHmmss ,精確到秒。第二個(gè) {} 放的是上傳文件的原始文件名。

【Minio】基于AWS S3協(xié)議搭建個(gè)人云存儲(chǔ)服務(wù)

在2007年,GlusterFS演變?yōu)榇笮头植际酱鎯?chǔ)方案后,任何配備合適硬件的公司,單位都可以利用個(gè)做分布式的流媒體,數(shù)據(jù)分析。在2011年,Red Hat收購了GlusterFS.

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語言。

Minio 提供對(duì)象存儲(chǔ)服務(wù),兼容了 AWS S3 存儲(chǔ)協(xié)議,用于非結(jié)構(gòu)化的數(shù)據(jù)存。非結(jié)構(gòu)化對(duì)象,比如圖像,音、視頻,日志文件,備份鏡像…等等管理不方便,不定長(zhǎng),大小變化大、類型多,云端的訪問復(fù)雜,minio就是來解決這種場(chǎng)景的。非結(jié)構(gòu)化的文件從數(shù)KB到5TB都能很好的支持。開源并且用 Go 語言開發(fā),有web操作界面,我們可以用它來搭建兼容S3協(xié)議的存儲(chǔ)云服務(wù)。

Minio可以做為云存儲(chǔ)的解決方案用來保存海量的圖片,視頻,文檔。由于采用Golang實(shí)現(xiàn),服務(wù)端可以工作在Windows,Linux, OS X和FreeBSD上。配置簡(jiǎn)單,基本是復(fù)制可執(zhí)行程序,單行命令可以運(yùn)行起來。

官網(wǎng):

那么,如何自己搭建一個(gè)私有的S3存儲(chǔ)云服務(wù)呢?

官方的話是推薦用Docker來搞,我們先用普通的二進(jìn)制文件來直接解決了!

######################################################################################

# mkdir /data/aws_s3

# wget??

# mv??minio /usr/local/bin/

# ?chmod ?755 ?/usr/local/bin/minio?

#?minio server ?/data/aws_s3

#############################################################

Created minio configuration file successfully at /root/.minio

Endpoint: ? ?

AccessKey: U3XLU4IMXY3IDKHU268F?

SecretKey: /6NCL6HGacviaCgRqr2qLbVOjhkkJdRpV7wz0JJD?

Region: ? ?us-east-1

SQS ARNs: ?

Browser Access:

Command-line Access:?

################################################################

$ mc config host add myminio? ?U3XLU4IMXY3IDKHU268F /6NCL6HGacviaCgRqr2qLbVOjhkkJdRpV7wz0JJD

Object API (Amazon S3 compatible):

Go:?

Java:?

Python:?

JavaScript:?

Drive Capacity: 8.3 GiB Free, 9.1 GiB Total

##############################################################

我們就成功啟動(dòng)了minio的s3服務(wù),默認(rèn)端口9000,可以通過網(wǎng)頁訪問:

注意 :第一次打開時(shí)候需要填寫AccessKey和SecretKey才能進(jìn)入,我們上面啟動(dòng)服務(wù)的時(shí)候,已經(jīng)看到屏幕有輸出:

AccessKey:?U3XLU4IMXY3IDKHU268F?

SecretKey:6NCL6HGacviaCgRqr2qLbVOjhkkJdRpV7wz0JJD

把這兩個(gè)Key填入,就能順利進(jìn)入,進(jìn)入后展開頁面如下:

這就是我們的S3云存儲(chǔ)的管理頁面了,看著是不是和七牛什么的提供云存儲(chǔ)的產(chǎn)品頁面挺像的,大家都是基于S3協(xié)議開發(fā)的!

上傳個(gè)文件試試:

點(diǎn)擊右下角的紅色小加號(hào)按鈕,彈出的菜單選擇”create bucket”則會(huì)創(chuàng)建一個(gè)桶,輸入名字”test”

點(diǎn)擊剛才那個(gè)紅色小加號(hào)按鈕,這次選擇”Upload file”上傳文件,給這個(gè)桶上傳了一個(gè)叫l(wèi)ogin.txt的文本文檔

此時(shí)頁面如下:

至此我們可以看到文件已經(jīng)上傳,要訪問這個(gè)文件,可以點(diǎn)擊文件右側(cè)的三個(gè)點(diǎn)的按鈕,選擇分享就可以得到一個(gè)外鏈,在瀏覽器中訪問這個(gè)外鏈就可以直接訪問文件。

那么文件到底被存到哪里去了呢,我們啟動(dòng)命令中其實(shí)指定了工作路徑/data/aws_s3/,所以到服務(wù)器這個(gè)目錄下看看:

# ls /data/aws_s3/?

test

# ls /data/aws_s3/test/

login.txt?

桶名稱test是一個(gè)目錄,其下就有上傳的login.txt文件。

如果想指定ip和端口,可以這樣寫:

# minio server /data/aws_s3?--address=0.0.0.0:9000

如果想讓服務(wù)在后臺(tái)運(yùn)行:

#?nohup?minio server /data/aws_s3 ? --address=0.0.0.0:443?

[1] 19882

// nohup: 忽略輸入并把輸出追加到啟動(dòng)命令的當(dāng)前目錄下的 "nohup.out"文件

minio可以用來搭建分布式存儲(chǔ)系統(tǒng) GlusterFS,這樣就成了真正的云存儲(chǔ)了,有時(shí)間再研究下把它從現(xiàn)在的單機(jī)測(cè)試,變成一朵存儲(chǔ)云!

minio官網(wǎng):

minio官方文檔:

minio github主頁:

詳解kubernetes備份恢復(fù)利器 Velero - 深入了解Carina系列第三期

傳統(tǒng)的數(shù)據(jù)備份方案主要有兩種, 一種是利用存儲(chǔ)數(shù)據(jù)的服務(wù)端實(shí)現(xiàn)基于快照的備份,另一種是在每臺(tái)目標(biāo)服務(wù)器上部署專有備份 agent 并指定備份數(shù)據(jù)目錄,定期把數(shù)據(jù)復(fù)制到外部存儲(chǔ)上。這兩種方式的備份機(jī)制相對(duì)固化,在云原生時(shí)代無法適應(yīng)容器化后的彈性、池化等部署場(chǎng)景。

以云原生存儲(chǔ)插件 Carina 為例,數(shù)據(jù)庫等數(shù)據(jù)敏感場(chǎng)景中每個(gè)數(shù)據(jù)庫集群包括多個(gè)計(jì)算實(shí)例,實(shí)例可能在集群內(nèi)任意漂移并實(shí)現(xiàn)自動(dòng)故障恢復(fù)。傳統(tǒng)數(shù)據(jù)備份方式在數(shù)據(jù)庫集群快速擴(kuò)縮容、跨節(jié)點(diǎn)漂移等場(chǎng)景下無法自動(dòng)跟隨計(jì)算實(shí)例遷移從而導(dǎo)致數(shù)據(jù)備份失效,因此一款貼合 k8s 容器場(chǎng)景的備份工具就十分重要。

Velero 是一款云原生時(shí)代的災(zāi)難恢復(fù)和遷移工具,采用 Go 語言編寫,并在 github 上進(jìn)行了開源,開源地址為:。Velero 源于西班牙語,意思為帆船,非常符合 Kubernetes 社區(qū)的命名風(fēng)格。

利用 velero 用戶可以安全的備份、恢復(fù)和遷移 Kubernetes 集群資源和持久卷。它的基本原理就是將集群的數(shù)據(jù),例如集群資源和持久化數(shù)據(jù)卷備份到對(duì)象存儲(chǔ)中,在恢復(fù)的時(shí)候?qū)?shù)據(jù)從對(duì)象存儲(chǔ)中拉取下來。除了災(zāi)備之外它還能做資源移轉(zhuǎn),支持把容器應(yīng)用從一個(gè)集群遷移到另一個(gè)集群,這也是 velero 一個(gè)非常成功的使用場(chǎng)景。

Velero 主要包括連個(gè)核心組件,分別為服務(wù)端和客戶端。服務(wù)端運(yùn)行在具體的 Kubernetes 集群中,客戶端是運(yùn)行在本地的命令行工具,只要配置好 kubectl 及 kubeconfig 即可使用,非常簡(jiǎn)單。

Velero 基于其實(shí)現(xiàn)的 kubernetes 資源備份能力,可以輕松實(shí)現(xiàn) Kubernetes 集群的數(shù)據(jù)備份和恢復(fù)、復(fù)制 kubernetes 集群資源到其他 kubernetes 集群或者快速復(fù)制生產(chǎn)環(huán)境到測(cè)試環(huán)境等功能。

在資源備份方面,velero 支持將數(shù)據(jù)備份到眾多的云存儲(chǔ)中,例如AWS S3或S3兼容的存儲(chǔ)系統(tǒng)、Azure Blob、Google Cloud存儲(chǔ)、Aliyun OSS等。與備份整個(gè) kubernetes 的數(shù)據(jù)存儲(chǔ)引擎 etcd 相比,velero 的控制更加細(xì)化,可以對(duì) Kubernetes 集群內(nèi)對(duì)象級(jí)別進(jìn)行備份,還可以通過對(duì) Type、Namespace、Label 等對(duì)象進(jìn)行分類備份或者恢復(fù)。

以核心的數(shù)據(jù)備份為例,當(dāng)執(zhí)行 velero backup create my-backup 時(shí):

關(guān)于備份存儲(chǔ)位置和卷快照,Velero 有兩個(gè)自定義資源 BackupStorageLocation 和 VolumeSnapshotLocation,用于配置 Velero 備份及其關(guān)聯(lián)的持久卷快照的存儲(chǔ)位置。

Minio安裝Yaml文件如下:

安裝Mini,并檢查資源創(chuàng)建情況。

待服務(wù)都已經(jīng)啟動(dòng)完畢,可以登錄 minio 查看 velero/velero 的 bucket 是否創(chuàng)建成功。

其中,幾個(gè)重要的參數(shù)及其說明如下:

安裝命令執(zhí)行完成后,等待 Velero 和 restic 工作負(fù)載就緒后,查看配置的存儲(chǔ)位置是否可用。

至此 velero 就已經(jīng)全部部署完成。

velero 支持備份所有對(duì)象,也可以按類型,名稱空間和/或標(biāo)簽過濾對(duì)象

其中:

--include-namespaces:備份該命名空間下的所有資源,不包括集群資源

--include-resources:要備份的資源類型

--include-cluster-resources:是否備份集群資源 此選項(xiàng)可以具有三個(gè)可能的值: true:包括所有集群范圍的資源; false:不包括集群范圍內(nèi)的資源; nil (“自動(dòng)”或不提供)

--selector:通過標(biāo)簽選擇匹配的資源備份

--exclude-namespaces:備份時(shí)該命名空間下的資源不進(jìn)行備份

--exclude-resources:備份時(shí)該類型的資源不進(jìn)行備份

:當(dāng)標(biāo)簽選擇器匹配到該資源時(shí),若該資源帶有此標(biāo)簽,也不進(jìn)行備份

同時(shí),也可以通過使用 –ordered-resources 參數(shù),按特定順序備份特定種類的資源,需要指定資源名稱和該資源的對(duì)象名稱列表,資源對(duì)象名稱以逗號(hào)分隔,其名稱格式為“命名空間/資源名稱”,對(duì)于集群范圍資源,只需使用資源名稱。映射中的鍵值對(duì)以分號(hào)分隔,資源類型是復(fù)數(shù)形式。

當(dāng)備份任務(wù)狀態(tài)是 “Completed” ,且錯(cuò)誤數(shù)為 0 ,說明備份任務(wù)完成且沒發(fā)生任何錯(cuò)誤,可以通過以下命令查詢:

通過先臨時(shí)將備份存儲(chǔ)位置更新為只讀模式,可以防止在還原過程中在備份存儲(chǔ)位置中創(chuàng)建或刪除備份對(duì)象。

還原完成后,不要忘記把備份存儲(chǔ)位置恢復(fù)為讀寫模式,以便下次備份任務(wù)使用:

Velero 支持還原 hooks,可以在還原任務(wù)執(zhí)行前或還原過程之后執(zhí)行的自定義操作。有以下兩種定義形式:

如進(jìn)行備份之前,請(qǐng)使用以下命令將注釋添加到Pod:

如進(jìn)行備份之前,請(qǐng)使用以下命令將注釋添加到Pod

是的,可以使用--namespace-mappings參數(shù)來指定:

Velero 有一個(gè)參數(shù),可讓用戶決定保留原來的 nodePorts。

velero restore create 子命令具有 --preserve-nodeports標(biāo)志保護(hù)服務(wù)nodePorts。此標(biāo)志用于從備份中保留原始的nodePorts,可用作--preserve-nodeports或--preserve-nodeports=true 如果給定此標(biāo)志,則Velero在還原Service時(shí)不會(huì)刪除nodePorts,而是嘗試使用備份時(shí)寫入的nodePorts。

如果是基于velero實(shí)現(xiàn)數(shù)據(jù)庫的一致性,需要用velero的hook,在備份前對(duì)數(shù)據(jù)庫進(jìn)行quiesce操作,備份完unquiesce。對(duì)于備份本身,可以使用restic來copy數(shù)據(jù)(但不用快照),或者使用快照的方式。


文章名稱:minio開發(fā)go語言 go minio
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/hghohs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部