一级A片线上/亚洲无人区电影完整版小视频/妻孝(改编版+续)/欧美涩涩

   中國金融網 加入收藏    設為首頁
首頁
國內資訊社會財經科技教育時尚娛樂房產家居汽車母嬰健康商業區塊鏈生活企業傳媒區域經濟旅游體育
您現在的位置:首頁 > 商業 > 正文
Longhorn高級使用之備份恢復與ReadWriteMany
2022-02-24 11:35      來源:TechWeb      編輯:葉子琪      閱讀量:17876   

備份恢復

Longhorn高級使用之備份恢復與ReadWriteMany

Longhorn 提供了備份恢復功能,要使用這個功能我們需要給卷創建一個 snapshot 快照,快照是 Kubernetes Volume 在任何指定時間點的狀態。

在 Longhorn UI 的 Volume 頁面中點擊要創建快照的卷,進入卷的詳細信息頁面,點擊下方的 Take Snapshot 按鈕即可創建快照了,創建快照后,將在卷頭之前的快照列表中可以看到它,比如這里我們會前面測試使用的 mysql 卷創建一個快照:

同樣在節點的數據目錄下面也可以看到創建的快照數據:

。 tree /var/lib/longhorn/replicas/pvc—ec17a7e4—7bb4—4456—9380—353db3ed4307—fbf72396//var/lib/longhorn/replicas/pvc—ec17a7e4—7bb4—4456—9380—353db3ed4307—fbf72396/├── revision.counter├── volume—head—002.img├── volume—head—002.img.meta├── volume.meta├── volume—snap—3b1f877b—24ba—44ec—808e—ab8d4b15f8dd.img├── volume—snap—3b1f877b—24ba—44ec—808e—ab8d4b15f8dd.img.meta├── volume—snap—5d403e8e—65e8—46d1—aa54—70aa3280dac4.img└── volume—snap—5d403e8e—65e8—46d1—aa54—70aa3280dac4.img.meta0 directories, 8 files

其中的 volume—snap—xxx 后面的數據和頁面上的快照名稱是一致的,比如頁面中我們剛剛創建的快照名稱為 3b1f877b—24ba—44ec—808e—ab8d4b15f8dd,其中的 img 文件是鏡像文件,而 img.meta 是保持當前快照的元信息:

。 cat volume—snap—3b1f877b—24ba—44ec—808e—ab8d4b15f8dd.img.meta"Name":"volume—head—001.img","Parent":"volume—snap—5d403e8e—65e8—46d1—aa54—70aa3280dac4.img","Removed":false,"UserCreated":true,"Created":"2022—02—22T07:36:48Z","Labels":null

元信息里面包含父級的文件鏡像,這其實表面快照是增量的快照。

此外除了手動創建快照之外,從 Longhorn UI 上還可以進行周期性快照和備份,同樣在卷的詳細頁面可以進行配置,在 Recurring Jobs Schedule 區域點擊 Add 按鈕即可創建一個定時的快照。

創建任務的時候可以選擇任務類型是備份或快照,任務的時間以 CRON 表達式的形式進行配置,還可以配置要保留的備份或快照數量以及標簽。

為了避免當卷長時間沒有新數據時,recurring jobs 可能會用相同的備份和空快照覆蓋舊的備份/快照的問題,Longhorn 執行以下操作:

Recurring backup job 僅在自上次備份以來卷有新數據時才進行新備份Recurring snapshot job 僅在卷頭中有新數據時才拍攝新快照

此外我們還可以通過使用 Kubernetes 的 StorageClass 來配置定時快照,可以通過 StorageClass 的 recurringJobs 參數配置定時備份和快照,recurringJobs 字段應遵循以下 JSON 格式:

apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: longhornprovisioner: driver.longhorn.ioparameters: numberOfReplicas: "3" staleReplicaTimeout: "30" fromBackup: "" recurringJobs: ''

應為每個 recurring job 指定以下參數:

name:任務的名稱,不要在一個 recurringJobs 中使用重復的名稱,并且 name 的長度不能超過 8 個字符task:任務的類型,它僅支持 snapshot 或 backupcron:Cron 表達式,指定任務的執行時間retain:Longhorn 將為一項任務保留多少快照/備份,不少于 1

使用這個 StorageClass 創建的任何卷都將自動配置上這些 recurring jobs。

要備份卷就需要在 Longhorn 中配置一個備份目標,可以是一個 NFS 服務或者 S3 兼容的對象存儲服務,用于存儲 Longhorn 卷的備份數據,備份目標可以在 Settings/General/BackupTarget 中配置,我們這里使用 Helm Chart 安裝的,最好的方式是去定制 values 文件中的 defaultSettings.backupTarget,當然也可以直接去通過 Longhorn UI 進行配置,比如這里我們先配置備份目標為 nfs 服務,Backup Target 值設置為 nfs://192.168.31.31:/var/lib/k8s/data,Backup Target Credential Secret 留空即可,然后拉到最下面點擊 Save:

備份目標配置后,就可以開始備份了,同樣導航到 Longhorn UI 的 Volume 頁面,選擇要備份的卷,點擊 Create Backup,然后添加合適的標簽點擊 OK 即可。

備份完成后導航到 Backup 頁面就可以看到對應的備份數據了:

這些備份的數據也會對應一個 backupvolumes crd 對象:

。前文我們介紹了通過LonghornUI可以對卷進行快照,備份恢復等功能,此外我們還可以通過Kubernetes來實現對卷的管理,比如可以在集群上通過CSI來實現快照,備份恢復,克隆,擴容等功能支持。 kubectl get backupvolumes —n longhorn—systemNAME CREATEDAT LASTBACKUPNAME LASTBACKUPAT LASTSYNCEDATpvc—ec17a7e4—7bb4—4456—9380—353db3ed4307 2022—02—22T09:23:24Z backup—8ae4af9c49534859 2022—02—22T09:23:24Z 2022—02—22T09:41:09Z

然后我們去到 NFS 服務器上查看會在掛載目錄下面創建一個 backupstore 目錄,下面會保留我們備份的數據:

。 tree /var/lib/k8s/data/backupstore/var/lib/k8s/data/backupstore└── volumes └── 5e └── b6 └── pvc—ec17a7e4—7bb4—4456—9380—353db3ed4307 ├── backups │ └── backup_backup—8ae4af9c49534859.cfg ├── blocks │ ├── 02 │ │ └── 2e │ │ └── 022eefc6526cd3d8fc3a9f9a4ba253a910c61a1c430a807403f60a2f233fa210.blk ...... │ └── f7 │ └── e3 │ └── f7e3ae1f83e10da4ece5142abac1fafc0d0917370f7418874c151a66a18bfa15.blk └── volume.cfg51 directories, 25 files

同樣這個時候我們也可以去快照列表選擇要備份的快照:

有了備份數據后要想要恢復數據,只需要選擇對應的備份數據,點擊 Restore Latest Backup 恢復數據即可:

ReadWriteMany

Longhorn 可以通過 NFSv4 服務器暴露 Longhorn 卷,原生支持 RWX 工作負載,使用的 RWX 卷 會在 longhorn—system 命名空間下面創建一個 share—manager— 的 Pod,該 Pod 負責通過在 Pod 內運行的 NFSv4 服務器暴露 Longhorn 卷。。

要能夠使用 RWX 卷,每個客戶端節點都需要安裝 NFSv4 客戶端,對于 Ubuntu,可以通過以下方式安裝 NFSv4 客戶端:

。 apt install nfs—common

對于基于 RPM 的發行版,可以通過以下方式安裝 NFSv4 客戶端:

。 yum install nfs—utils

現在我們來創建一個如下所示的 PVC 對象,訪問模式配置為 ReadWriteMany:

# html—vol.yamlkind: PersistentVolumeClaimapiVersion: v1metadata: name: htmlspec: accessModes: — ReadWriteMany storageClassName: longhorn resources: requests:storage: 1Gi

直接創建上面的資源對象就會動態創建一個 PV 與之綁定:

kubectl get pvc htmlNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEhtml Bound pvc—a03c5f7d—d4ca—43e9—aa4a—fb3b5eb5cf15 1Gi RWX longhorn 15s

然后創建一個如下所示的名為 writer 的 Deployment 資源對象,使用上面創建的 PVC 來持久化數據:

# html—writer.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: writerspec: selector: matchLabels: app: writer template: metadata: labels: app: writer spec: containers: — name: content image: alpine:latest volumeMounts: — name: html mountPath: /html command: args: — while true, do date gt,gt, /html/index.html, sleep 5, done volumes: — name: html persistentVolumeClaim:claimName: html

部署后上面創建的 Longhorn 的卷就變成 Attached 狀態了:

并且這個時候會自動啟動一個 share—manager 的 Pod,通過該 Pod 內運行的 NFSv4 服務器來暴露 Longhorn 卷:

kubectl get pods —n longhorn—system —l longhorn.io/component=share—managerNAME READY STATUS RESTARTS AGEshare—manager—pvc—a03c5f7d—d4ca—43e9—aa4a—fb3b5eb5cf15 1/1 Running 0 2m16s

然后我們再創建一個如下所示的 Deployment:

# html—reader.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: readerspec: replicas: 3 selector: matchLabels: app: reader template: metadata: labels: app: reader spec: containers: — name: nginx image: nginx:stable—alpine ports: — containerPort: 80 volumeMounts: — name: html mountPath: /usr/share/nginx/html volumes: — name: html persistentVolumeClaim: claimName: htmlapiVersion: v1kind: Servicemetadata: name: readerspec: selector: app: reader type: NodePort ports: — protocol: TCP port: 80targetPort: 80

上面的 reader Pods 可以引用 writer Pod 相同的 PVC,是因為上面我們創建的 PV 和 PVC 是 ReadWriteMany 訪問模式,直接創建上面的資源對象,我們可以通過 NodePort 來訪問應用:

現在我們嘗試從一個 reader Pod 中去產生一些數據,然后再去訪問應用驗證數據是否正確:

這里我們就驗證了在 Longhorn 中使用 ReadWriteMany 訪問模式的 Volume 卷。

鄭重聲明:此文內容為本網站轉載企業宣傳資訊,目的在于傳播更多信息,與本站立場無關。僅供讀者參考,并請自行核實相關內容。

 
上一篇: 寶馬和漢斯齊默希望未來的汽車擁有自己獨特的聲音
下一篇:最后一頁
 
     欄目排行
  1. 寶馬和漢斯齊默希望未來的汽車擁有自己獨特
  2. 11家公司公布年度分紅方案
  3. HondaCivicTouringvs.
  4. 榮光豈止在獎臺一同銘記這些老將風采
  5. 足協4套預案力保新賽季中超聯賽
  6. 燃夢冬奧!“冠軍鄉”冰與火背后的溫情
  7. 這款全新的豐田2000GT將配備2JZ發
  8. 闖關無壓力全靠真實力大禹電池技術輕松應對
  9. 論中國王牌混動技術-智能DHT到底有多強
  10. 原材料瘋漲,“油茅”金龍魚凈利潤腰斬股價
     欄目推薦
二手房“帶押過戶”啟動滿月 成功嘗鮮者寥寥無幾二手房“帶押過戶”啟動滿月 成功嘗鮮者寥寥無幾
2022年營收78.61億,湯臣倍健迎來VDS行業新2022年營收78.61億,湯臣倍健迎來VDS行業新周期
大興國際氫能示范區兼顧產業發展和配套服務打造員工理想大興國際氫能示范區兼顧產業發展和配套服務打造員工理想生活藍本
迪麗熱巴穿軍綠色也好美!和吳磊同框絲毫沒有年齡迪麗熱巴穿軍綠色也好美!和吳磊同框絲毫沒有年齡
綠色塞罕壩 不朽的奇跡綠色塞罕壩 不朽的奇跡