寫一個關於minio的吧(後半部分為自建minio)
minio是什麼
- MinIO是物件儲存服務。它基於Apache License 開源協議,相容Amazon S3雲端儲存介面。適合儲存非結構化資料,如圖片,音訊,視訊,日誌等。物件檔案最大可以達到5TB。\
- 適合儲存海量圖片、視訊、日誌檔案、備份資料和容器/虛擬機器映象等。\
- MinIO主要採用Golang語言實現,整個系統都執行在作業系統的使用者態空間,客戶端與儲存伺服器之間採用http/https通訊協議。
minIO有哪些特點
高效能
MinIO 是全球領先的物件儲存先鋒,目前在全世界有數百萬的使用者. 在標準硬體上,讀/寫速度上高達183 GB / 秒 和 171 GB / 秒。\ 物件儲存可以充當主儲存層,以處理Spark、Presto、TensorFlow、H2O.ai等各種複雜工作負載以及成為Hadoop HDFS的替代品。\ MinIO用作雲原生應用程式的主要儲存,與傳統物件儲存相比,雲原生應用程式需要更高的吞吐量和更低的延遲。而這些都是MinIO能夠達成的效能指標。
可擴充套件性
MinIO利用了Web縮放器的來之不易的知識,為物件儲存帶來了簡單的縮放模型。 這是我們堅定的理念 “簡單可擴充套件.” 在 MinIO, 擴充套件從單個群集開始,該群集可以與其他MinIO群集聯合以建立全域性名稱空間, 並在需要時可以跨越多個不同的資料中心。 通過新增更多叢集可以副檔名稱空間, 更多機架,直到實現目標。
雲的原生支援
MinIO 是在過去4年的時間內從0開始打造的一款軟體 ,符合一切原生雲端計算的架構和構建過程,並且包含最新的雲端計算的全新的技術和概念。 其中包括支援Kubernetes 、微服和多租戶的的容器技術。使物件儲存對於 Kubernetes更加友好。
開放全部原始碼 + 企業級支援
MinIO 基於Apache V2 license 100% 開放原始碼 。 這就意味著 MinIO的客戶能夠自動的、無限制、自由免費使用和整合MinIO、自由的創新和創造、 自由的去修改、自由的再次發行新的版本和軟體. 確實, MinIO 強有力的支援和驅動了很多世界500強的企業。 此外,其部署的多樣性和專業性提供了其他軟體無法比擬的優勢。
與Amazon S3 相容
亞馬遜雲的 S3 API(介面協議) 是在全球範圍內達到共識的物件儲存的協議,是全世界內大家都認可的標準。 MinIO 在很早的時候就採用了 S3 相容協議,並且MinIO 是第一個支援 S3 Select 的產品. MinIO對其相容性的全面性感到自豪, 並且得到了 750多個組織的認同, 包括Microsoft Azure使用MinIO的S3閘道器 - 這一指標超過其他同類產品的總和。
最重要的一點:簡單
極簡主義是MinIO的指導性設計原則。簡單性減少了出錯的機會,提高了正常執行時間,提供了可靠性,同時簡單性又是效能的基礎。 只需下載一個二進位制檔案然後執行,即可在幾分鐘內安裝和配置MinIO。 配置選項和變體的數量保持在最低限度,這樣讓失敗的配置概率降低到接近於0的水平。 MinIO升級是通過一個簡單命令完成的,這個命令可以無中斷的完成MinIO的升級,並且不需要停機即可完成升級操作 - 降低總使用和運維成本。
自建minIO(centos7.6+寶塔面板(參考))
為什麼要搭建這個minio
因為鹹魚之前趁著騰訊雲開年採購季,買了4Tb的資料盤,所以準備搞一個自己的儲存\ 用來放自己的資源對接圖床等等\ 同時,網上對於新版minio的資料少之又少,於是自己搭建一個同時記錄下來
方法
話不多說,開搞
首先,我們去寶塔面板的這裡找到docker進行安裝
然後我們可以直接搜尋minio以及他的客戶端mc或者直接拉取
獲取的時候輸入 minio/minio 以及minio/mc 即可獲取映象 然後....寶塔這邊建立容器如果不會的話,建議去shell裡面進行操作吧 或者也可以純shell進行docker的映象拉取操作等
shell開搞(鹹魚因為映象是新版的,所以以新版為例子了)
html
docker run --name minio \
-p 9000:9000 \ //埠可以自己修改,記得修改了,面板安全以及伺服器防火牆or安全組記得放行埠哦
-p 9090:9090 \
-d --restart=always \
-e "MINIO_ROOT_USER=user" \ //這行的使用者名稱和下行的password(密碼)可以按照自己喜好修改喲
-e "MINIO_ROOT_PASSWORD=password" \
-v /home/minio/data:/data \ //這行以及下面的是設定minio的儲存地方以及他的配置地方?
-v /home/minio/config:/root/.minio \
minio/minio server /data \
--console-address '0.0.0.0:9090'
輸完上面的這些,你的minio就已經啟動了
我們可以用你的ip 埠號來檢視
如果是伺服器就用你的公網ip 9000(就是上面設定的埠號哦,會自動跳到9090)
如下圖
username password就是上面你設定的 然後我們就可以進去建立bucket了!
如鹹魚已經建立了juyuantop的桶 然後就可以愉快的上傳和下載東西啦
mc的使用
當然你發現,自己只能在minio的web端進行使用,那麼如何通過域名 bucket name 檔名就可以直接下載呢 這我們就要用到mc了 mc是minio的客戶端
我們已經在docker拉好映象了
所以可以直接使用
我們用如下命令來啟用mc
html
docker run -it --entrypoint=/bin/sh minio/mc
注意,mc自己就有一個play的桶,咱們不用管,我們就用上面這個命令,用完之後發現變成了下圖
然後我們就開始輸入命令,使得我們的資源可以通過ip 埠 bucket 資源名來訪問到
html
mc config host add minio http://127.0.0.1:9000 username password --api S3v4
這個ip地址可以是你的公網ip也可以是本機ip username以及password就是上面的了
然後再來
html
mc policy set download minio/你的桶名
這個是給你的桶具有下載許可權 minio是我拉取映象並且沒有改變名字,如果你改了記得修改,桶名可以通過 mc ls minio 檢視你的bucket
用完之後如果是綠色的則說明成功
這樣我們就可以進行通過ip埠 bucketname 資源名字下載預覽裡面的資源了
nginx反向代理
如何使用域名訪問 這個其實寶塔使用者挺友好的,直接開搞 建立一個站點,啥都不用管,直接找到反向代理
然後我們進行反向代理配置就可以了
你可以通過檢視docker容器裡面的容器日誌看到minio的api 通過把這個api反向代理到你的域名就可以了。效果如下
我們就可以通過這個使用各種圖床以及用連結了! 至於其他的,我們可以通過官方文件以及百度來查到你所需要的資料哦
那麼,今天的分享就到這裡了!