MinIO線上故障演練
得益於糾刪碼演算法,分散式MinIO叢集為多個驅動器或節點故障提供內建容錯能力。根據選擇的EC:N值,MinIO叢集可以容忍多達一半的驅動器或節點丟失並任然提供可寫可讀服務。
下表列出了MinIO部署中的典型故障型別,以及從每種故障中恢復的過程。
故障型別 | 說明 |
---|---|
Drive Failure(驅動器故障 ) | MinIO支援熱插拔的方式替換故障的驅動器 |
Node Failure(節點故障) | 當新的節點重新加入到叢集后,MinIO會重新開始修復該節點,原先儲存在該機器上的資料會重新儲存在該節點上。 |
Site Failure(叢集級故障) | MinIO 叢集複製功能,支援bucket、物件、配置項的重新同步。 |
由於MinIO可以在沒有顯著效能損失的情況下降級執行,管理員可以根據硬體故障的比例安排硬體更換。“正常”故障率(單個驅動器或節點故障)可能允許更合理的更換時間範圍,而“關鍵”故障率(多個驅動器或節點)可能需要更快的響應。
如果驅動器發生故障,只要損壞的磁碟數量低於叢集的一半,可以線上直接更換驅動器,而不影響讀寫。
本文主要介紹前兩種。
1、驅動器故障恢復
1.1 官方文件
MinIO支援用新的磁碟更換損壞的磁碟,而不需要重啟任何MinIO節點。MinIO確保資料的一致性和正確性。不要試圖手動恢復或將資料從故障驅動器遷移到新的健康驅動器。
接下來將分佈介紹如何實現MinIO恢復磁碟。
Step1:解除安裝故障的磁碟
可以使用umount解除安裝失敗的驅動器,例如我們要解除安裝/dev/sdb磁碟,命令如下:
umount /dev/sdb
Step2:替換失敗的驅動器
更換驅動器必須滿足如下要求:
格式化磁碟並且磁碟資料為空,一定要求檔案格式為XFS? 相同的硬碟型別(如HDD、SSD、NVMe)。 同等或更高的效能。 相等或更大的容量。
注意:使用容量更大的替換驅動器不會增加叢集的總儲存空間。MinIO使用最小驅動器的容量作為伺服器池中所有驅動器的上限。
下面的命令將驅動器格式化,並分配一個標籤永遠匹配失敗的驅動器:
#格式化磁碟為xfs
mkfs.xfs /dev/sdb -L DRIVE1
#格式化磁碟為ext4
mkfs.ext4 /dev/sdb -L DRIVE1
MinIO強烈建議使用基於標籤的掛載,以確保在系統重新啟動時仍然保持一致的驅動器順序。
Step3:檢查和更新fstab
檢查/etc/fstab檔案並根據需要進行更新,使失敗驅動器的條目指向新格式化的替換驅動器。
如果使用基於標籤的驅動器分配,請確保每個標籤都指向正確的新格式化驅動器。 如果使用基於UUID的驅動器分配,則基於新格式化的驅動器更新每個點的UUID。您可以使用lsblk來檢視驅動器uuid。
我們可以使用如下命令進行檢查:
$ cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
LABEL=DRIVE1 /mnt/drive1 xfs defaults,noatime 0 2
LABEL=DRIVE2 /mnt/drive2 xfs defaults,noatime 0 2
LABEL=DRIVE3 /mnt/drive3 xfs defaults,noatime 0 2
LABEL=DRIVE4 /mnt/drive4 xfs defaults,noatime 0 2
根據前面的示例命令,不需要對fstab進行更改,因為/mnt/drive1處的替換驅動器使用了與故障驅動器相同的drive1標籤。
Step4:重新載入磁碟
使用 mount -a 命令載入/etc/fstab中定義的所有磁碟。
mount -a
Step5:監控MinIO驅動器檢測和修復
執行完mount -a後,MinIO叢集會自行開始恢復。
使用mc管理控制檯命令或journalctl -u minio監視重新掛載驅動器後的伺服器日誌輸出。輸出應該包括標識每個格式化驅動器和空驅動器的訊息。
使用mc admin heal來監控部署中的整體修復狀態。MinIO積極地修復替換的驅動器,以確保從降級狀態中快速恢復。
1.2 上機實踐
本次實驗的MinIO叢集為1NMD,叢集的統計資訊如下:
透過解除安裝/dev/sdb,即第一塊磁碟來模擬第一塊磁碟故障。
執行解除安裝磁碟命令:
[root@localhost ~]# umount /data1
[root@localhost ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 1.6G 44G 4% /
/dev/sda1 1014M 151M 864M 15% /boot
tmpfs 379M 0 379M 0% /run/user/0
/dev/sdc 9.8G 38M 9.2G 1% /data2
/dev/sdd 9.8G 38M 9.2G 1% /data3
/dev/sde 9.8G 38M 9.2G 1% /data4
執行完後,叢集的監控資訊如下所示,線上磁碟驅動器由4變為3。
在嘗試進行驅動器修復之前,我們先來驗證一下檔案上傳可以正常上傳下載。
檔案下載驗證:透過。如下圖所示:
檔案上傳驗證:透過,如下圖所示:
2、節點故障恢復
MinIO同樣支援節點級資料恢復,也就是說一個節點上所有的磁碟損壞或資料丟失,只要滿足EC:N的資料恢復要求,資料一樣可以被自動修復。
具體的做法是跟換一臺新的主機,或者是原先主機上重新放置新的磁碟(如果是磁碟損壞),然後重新安裝部署一個MinIO即可,其配置與原先節點所在的Server Pool中其他節點保持一致。
如果是更換的主機,請記得使用原先節點的hostname,確保正確的路由即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024922/viewspace-2948244/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- redis的sentinel模式故障演練Redis模式
- B站故障演練平臺實踐
- MinIO線上擴容實戰
- 直播混沌工程之故障演練實踐總結
- 如何應對線上故障?
- 想問問有公司做介面級別的故障演練嗎?
- 線上故障處理手冊
- minio上傳檔案
- 介面_演練
- 生產環境故障處理演練-mysql資料庫主從恢復MySql資料庫
- MySQL系列:binlog日誌詳解(引數、操作、GTID、最佳化、故障演練)MySql
- 別等出了P0事故,才去建這個故障演練體系
- 用資料滅火——如何積極主動預防故障,避免IT消防演練
- 什麼是攻防演練?攻防演練包含哪些專案?
- 後端人員如何應對線上故障後端
- JVM線上CPU 飈高故障排查基本操作JVM
- Map集合類_演練
- Set集合類_演練
- Gin實戰演練
- Pytorch入門演練PyTorch
- UniApp檔案上傳(SpringBoot+Minio)APPSpring Boot
- minio檔案上傳與下載
- 《從軍》最後一次戰前演練今日開啟!超多福利活動齊上線
- 線上故障,這次是kube-proxy的鍋
- 軟體測試線上故障規範及模板
- mongodb 容災演練操作步步驟【適用於計劃內演練】MongoDB
- 混沌演練實踐(一)
- vue + minio上傳檔案伺服器Vue伺服器
- 線上故障的排查清單,運維拿走不謝!運維
- 線上MYSQL同步報錯故障處理方法總結MySql
- 26_上機動手實戰演練mget批次查詢apiAPI
- Java大檔案上傳、分片上傳、多檔案上傳、斷點續傳、上傳檔案minio、分片上傳minio等解決方案Java斷點
- FT-FMEA融合混沌演練,零售運營系統韌性架構線上驗證實踐架構
- 2019年旅遊演藝線上票務報告
- Chaosblade 常見場景演練
- 小小演練(hydra&burpsuite&pywifi)UIWiFi
- Minio
- 容災演練,一鍵切換,浙大二院實戰演練圓滿成功!