① 【Minio】基於AWS S3協議搭建個人雲存儲服務
在2007年,GlusterFS演變為大型分布式存儲方案後,任何配備合適硬體的公司,單位都可以利用個做分布式的流媒體,數據分析。在2011年,Red Hat收購了GlusterFS.
Minio是GlusterFS創始人之一Anand Babu Periasamy發野芹族布新的開源項目。Minio兼容Amason的S3分布式對象存儲項目,採用Golang實現,客戶端支持java,python,Javacript, Golang語言。
Minio 提供對象存頌弊儲服務,兼容了 AWS S3 存儲協議,用於非結構化的數據存。非結構化對象,比如圖像,音、視頻,日誌文件,備份鏡像…等等管理不方便,不定長,大小變化大、類型多,雲端的訪問復雜,minio就是來解決這種場景的。非結構化的文件從數KB到5TB都能很好的支持。開源並且用 Go 語言開發,有web操作界面,我們可以用它來搭建兼容S3協議的存儲雲服務。
Minio可以做為雲存儲的解決方案用來保存海量的圖片,視頻,文檔。由於採用Golang實現,服務端可以工作在Windows,linux, OS X和FreeBSD上。配置簡單,基本是復制可執行程序,單行命令可以運行起來。
官網: https://minio.io
那麼,如何自己搭建一個私有的S3存儲雲服務呢?
官方的話是首大推薦用Docker來搞,我們先用普通的二進制文件來直接解決了!
######################################################################################
# mkdir /data/aws_s3
# wget https://dl.minio.io/server/minio/release/linux-amd64/minio
# 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: http://10.5.10.89:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
AccessKey: U3XLU4IMXY3IDKHU268F
SecretKey: /
Region: us-east-1
SQS ARNs:
Browser Access:
http://10.5.10.89:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
################################################################
$ mc config host add myminio http://10.5.10.89:9000 U3XLU4IMXY3IDKHU268F /
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
Drive Capacity: 8.3 GiB Free, 9.1 GiB Total
##############################################################
我們就成功啟動了minio的s3服務,默認埠9000,可以通過網頁訪問:
http://10.5.10.89:9000
http://127.0.0.1:9000
http://172.17.0.1:9000
注意 :第一次打開時候需要填寫AccessKey和SecretKey才能進入,我們上面啟動服務的時候,已經看到屏幕有輸出:
AccessKey: U3XLU4IMXY3IDKHU268F
SecretKey:
把這兩個Key填入,就能順利進入,進入後展開頁面如下:
這就是我們的S3雲存儲的管理頁面了,看著是不是和七牛什麼的提供雲存儲的產品頁面挺像的,大家都是基於S3協議開發的!
上傳個文件試試:
點擊右下角的紅色小加號按鈕,彈出的菜單選擇」create bucket」則會創建一個桶,輸入名字」test」
點擊剛才那個紅色小加號按鈕,這次選擇」Upload file」上傳文件,給這個桶上傳了一個叫login.txt的文本文檔
此時頁面如下:
至此我們可以看到文件已經上傳,要訪問這個文件,可以點擊文件右側的三個點的按鈕,選擇分享就可以得到一個外鏈,在瀏覽器中訪問這個外鏈就可以直接訪問文件。
那麼文件到底被存到哪裡去了呢,我們啟動命令中其實指定了工作路徑/data/aws_s3/,所以到伺服器這個目錄下看看:
# ls /data/aws_s3/
test
# ls /data/aws_s3/test/
login.txt
桶名稱test是一個目錄,其下就有上傳的login.txt文件。
如果想指定ip和埠,可以這樣寫:
# minio server /data/aws_s3 --address=0.0.0.0:9000
如果想讓服務在後台運行:
# nohup minio server /data/aws_s3 --address=0.0.0.0:443 &
[1] 19882
// nohup: 忽略輸入並把輸出追加到啟動命令的當前目錄下的 "nohup.out"文件
minio可以用來搭建分布式存儲系統 GlusterFS,這樣就成了真正的雲存儲了,有時間再研究下把它從現在的單機測試,變成一朵存儲雲!
minio官網: https://minio.io
minio官方文檔: https://docs.minio.io/docs/minio-docker-quickstart-guide
minio github主頁: https://github.com/minio/minio
② 如何搭建私有雲存儲
虛擬化技術在企業私有雲IT基礎架構中仍然占據重要地位,同時,為了進一步提升應用效率,越來越多的生產環境也正在逐步變革,從以虛擬機為中心的架構向以容器和微服務為中心的雲原生架構過渡,在這個過程中,存儲如何有效支撐各種雲主機應用與微服務應用,對於企業的私有雲數據中心提出了新的挑戰。
企業面臨的問題
存儲設施七國八制,硬體鎖定缺少彈性
多種雲平台對於存儲的要求各不相同,塊/文件/對象存儲對應不同類型的應用,對外提供不同的服務介面,一種存儲設備無法滿足多種類型的雲平台存儲需求,而且傳統存儲在擴展性方面不能滿足雲時代大規模雲平台對存儲在線彈性擴容的需求,在可維護性方面則面臨硬體架構綁定、運維復雜、難以維保等問題,而且這些問題會隨著存儲設備種類和數量的增多進一步放大。
業務調度變更頻繁,資源不能共享
隨著開發測試虛擬機以及容器、微服務平台在企業私有雲平台的上線,大型企業的應用快速迭代、頻繁發布對存儲系統的支撐提出了嚴峻挑戰,不同業務的數據保存在不同廠商的存儲設備中,數據流動性差,不僅導致存儲空間及性能資源浪費嚴重,數據災備方案也很難統一化。
開源產品難以維護,不能實現企業級產品化
基於開源虛擬化技術的雲平台如OpenStack為眾多客戶提供了快速構建私有雲基礎設施的能力,但是存儲部分卻不一樣,開源的存儲系統如Ceph雖然可以小規模部署試用, 但在大規模商用時會遇到很多問題:與硬體和企業級應用生態融合程度不高,嚴重依賴人工開發運維,在性能和服務質量方面不能滿足核心業務的需求
杉岩私有雲存儲解決方案
杉岩私有雲存儲解決方案充分發揮了杉岩統一存儲平台(USP)的雲適配、開放等優勢,支持各種復雜的應用負載,可靈活支撐私有雲的虛擬化平台,如VMware、Citrix、OpenStack等虛擬化和雲平台,以及通過Kubernetes軟體一致性認證的所有容器雲平台,如:Rancher、Openshift、Kubernetes等。
通過杉岩統一存儲平台,用戶可快速構建能夠兼容所有主流虛擬化平台與容器微服務平台的統一存儲資源池,面對各種虛擬機和微服務需求,池化的存儲平台為大規模雲環境提供了可靠的存儲基礎架構支撐,幫助用戶從紛繁復雜的基礎架構運維工作中解放出來,更關注於私有雲上運行的業務本身。
客戶價值
資源整合,鏈接企業信息孤島
單資源池提供塊、文件、對象多種存儲服務,支持虛擬化平台和資料庫應用;強大的存儲資源生命周期管理能力,跨雲平台在線遷移數據,實現數據共享和提高資源利用率;存儲卷QoS等級和性能優先順序在線調整,可根據企業資源和業務需求合理配置資源。
開放兼容,適配多種私有雲平台
通過VMware VAAI和Citrix Ready認證,針對主流虛擬化平台優化I/O性能,大幅提升虛擬機訪問的性能。通過OpenStack Cinder認證,可提供塊和對象存儲基礎架構支撐支持容器平台CSI介面認證,為Kubernetes生態的容器應用提供塊和文件存儲服務。
智能管理,解決規模化運維難題
向導式安裝部署和自助擴容配置,極大提升易用性和可維護性,管理自動化降低運維成本;針對大規模集群優化的可靠性管理,檢測和修復硬碟軟錯誤的專利技術,節約用戶硬體投資。存儲視角的管理功能,可視化展示主機、容器與存儲的映射關系和性能監控協助管理員快速定位和解決問題。
③ 通過K8S部署對象存儲MinIO
MinIO 是全球領先的對象存儲先鋒,以 Apache License v2.0 發布的對象存儲伺服器,是為雲應用和虛擬機而設計的分布式對象存儲伺服器。在標准硬體上,讀/寫速度上高達183GB/s和171GB/s。它與 Amazon S3 雲存儲服務兼容。 它最適用租察於存儲非結構迅念化數據,如照片、視頻、日誌文件、備份和容器/虛擬機映像。 對象的大小可以從幾KB 到最大5TB。
MinIO是一個非常輕量的服務,可以很簡單的和其他應用的結弊昌茄合,類似 NodeJS, Redis 或者 MySQL。
MinIO支持多種靈活的部署方式,支持Docker Compose、Docker Swam、Kubernetes等,詳見官網: https://docs.min.io/docs/minio-deployment-quickstart-guide.html 或者 https://min.io/download#/linux
這里著重介紹K8S下部署
1、standalone模式
由於service採用NodePort類型,通過主機IP:32593訪問web
2、distributed模式
分布式部署,實例數至少4個,所以需要另外創建4個pv
④ 如何建立單位內部雲存儲伺服器
看雲存儲的需求,是做雲盤,做大文件存儲,小文件存儲,或者塊讀寫等等。
開源系統就不少,自己建的話,省錢就用開源。
OpenStack裡面有Swift,是一個對象存儲,適合於存放比較小的,以對象為單位的文件。
SeaFile開源雲存儲系統平台是由國人開發的新一代的開源雲存儲系統軟體,SeaFile提供豐富的文件同步和管理功能,搭個網盤是比較方便的。
還有GlusterFS,是一個集群的文件系統,支持 PB 級的數據量。
Ceph,分布式文件系統,支持作為塊設備進行讀寫訪問。
按照教程來,搭建起來不難。當然,要深入使用,解決生產運行中的各種坑,還是需要一定時間的積累的。
我們就是選擇的Swift,然後在此基礎上開發的文檔管理系統。
⑤ 什麼是對象存儲
對象存儲,也叫做基於對象的存儲,是用來描述解決和處理離散單元的方法的通用術語,這些離散單元被稱作為對象。
存儲區域網(SAN)和網路附加存儲(NAS)是目前兩種主流網路存儲架構,而對象存儲(Object-based Storage)是一種新的網路存儲架構,基於對象存儲技術的設備就是對象存儲設備(Object-based Storage Device)簡稱OSD。1999年成立的全球網路存儲工業協會(SNIA)的對象存儲設備工作組發布了ANSI的X3T10標准。總體上來講,對象存儲綜合了NAS和SAN的優點,同時具有SAN的高速直接訪問和NAS的分布式數據共享等優勢,提供了具有高性能、高可靠性、跨平台以及安全的數據共享的存儲體系結構。