30 节点设定备份与故障资料救援工具

30 节点设定备份与故障资料救援工具

  经由PVE所提供的去中心化能力,让丛集的设定会在每个节点都有一份,可以避免因某些节点故障而导致丛集设定遗失。
  尽管如此,我们仍然应该要做好定期的节点与丛集设定备份,以应对可能的意外状况发生。

30.1 快速备份指令稿

  PVE所有的重要设定都放置在【/etc/pve】资料夹内,因此我们将这个资料夹备份起来,当发生灾难时就可以从备份档里捞出重要设定档。
  我写了一支简易的备份指令稿,请将它放置在CRON排程器里,即可定期执行。

  1. 请以文字编辑器建立一个指令稿,例如:nano /opt/bakpveconf.sh,再将以下内容填入后存档。
#!/bin/bash
# bakpveconf.sh
hostname=$(hostname)
fn_date=$(date "+Y%m%d.%H%M")
bak_targetpath=$1
/bin/tar -zcvf ${bak_targetpath}/pveconf_${hostname}_${fn_date}_tar.gz /etc/pve
  1. 完成后,请给予执行权限:
    chmod +x /opt/bakpveconf.sh
  2. 接着建立一个CRON排程工作,例如:我们要每天01:00进行备份,将【/etc/pve】资料夹打包压缩起来,将备份档放到【/mnt/nfs1】这个经由NFS网路挂接进来的资料夹存放。
    echo "0 1 * * * root /opt/bakpveconf.sh /mnt/nfs1" > /etc/cron.d/bakpveconf
    小提醒:这支备份指令稿不会自动清理旧的备份档,请留意存放备份位置的可用容量是否足够。

30.2 进阶备份指令稿

  前面的备份指令稿可以快速备份PVE的设定,但对于节点来说,还有网路界面设定、DNS伺服器设定、系统参数、主机名称、排程工作、甚至是iSCSI多重路径设定、UPS通知服务等设定,都是非常重要的相关设定。
  如想更全面的备份相关设定档,可以参考另一个网友所撰写的指令稿【pve-host-backup】。

  1. 请以文字编辑器建立一个指令稿,例如:nano /opt/proxmox-backup.sh,再将以下内容填入后存档。
#!/bin/bash
BACKUP_PATH="/mnt/nfs1/"
BACKUP_FILE="pve-host"
KEEP_DAYS=7
PVE_BACKUP_SET="/etc/pve/ /etc/lvm/ /etc/modprobe.d/ /etc/network/interfaces /etc/vzdump.conf /etc/sysctl.conf /etc/resolv.conf /etc/ksmtuned.conf /etc/hosts /etc/hostname /etc/cron* /etc/aliases"
PVE_CUSTOM_BACKUP_SET="/var/lib/pve-cluster/ /root/" # /etc/apcupsd/ /etc/multipath/ /etc/multipath.conf
tar -czf $BACKUP_PATH$BACKUP_FILE-$(date +%Y_%m_%d-%H_%M_%S).tar.gz --absolute-names $PVE_BACKUP_SET $PVE_CUSTOM_BACKUP_SET
find $BACKUP_PATH$BACKUP_FILE-* -mindepath 0 -maxdepth 0 -depth -mtime +$KEEP_DAYS -delete

这个指令稿里面有几个需要调整的设定:
* BACKUP_PATH:备份档要放置的位置
* BACKUP_FILE:备份档的档名前置名称
* KEEP_DAYS:要保留最近几日的备份档
* PVE_CUSTOM_BACKUP_SET:除了预设的PVE相关设定备份之外,其他想要一并备份的路径
2. 完成后,请,给予执行权限:
chmod +x /opt/proxmox-backup.sh
3. 接着建立一个CRON排程工作,例如:我们要每天01:00进行备份,执行如下:
echo "0 1 * * * root /opt/proxmox-backup.sh > /etc/cron.d/proxmox-backup
4. 完成后,就会自动于每天将PVE相关的的资料夹及档案打包压缩起来,并把备份档放到【/mnt/nfs1】这个经由NFS网路挂接进来的资料夹存放,并会自动检查先前已经制作过的备份档,然后只保留最近七天的备份档,更早之前的备份档将会删除。

30.3 进阶备份工具

  如果想要有更多的备份来源路径选择、方便的操作界面,并且可以备份至多种目的端,如本机资料夹、本地网路伺服器FTP/SFTP/NFS/CIFS等以及云端AWS/GCP/Azure等地方,则可以参考Duplicati这一套功能强大的备份工具软体。
  或者安装有Proxmox BS备份伺服器,也可以经由Client端的备份工具,将指定的路径档案备份至PBS上存放。

30.4 无法开机资料救援工具

  若Proxmox VE节点发生故障,导致无法开机,而虚拟机磁碟是存放于ZFS所组成的储存集区时,该怎么快速的读取出来呢?
  由于ZFS是软体定义储存与硬体无依赖性,因此只要找到另外一台安装有支援ZFS的作业系统,例如:PVE、FreeNAS/TrueNAS等,将磁碟拔过去接上,即可简单汇入取用资料。
  若无法将磁碟拔出来并安装至其他主机时,我们可以将Ubuntu Desktop 21.04制作为安装随身碟,打造一个兼具方便使用的视窗界面ZFS资料撷取工具。

  1. 请先至Ubuntu网站,下载Ubuntu Desktop 21.04 ISO安装映像档。
  2. 下载完成后,请先以前章制作PVE安装碟的方式,以Etcher工具软体将Ubuntu Desktop 21.04 ISO映像档烧录进随身碟,并以该随身碟至需要撷取资料的主机上以USB碟开机,并于开机完成后的画面选择【Try Ubuntu】,进入视窗界面使用。
  3. 进入桌面环境后,请点选左下角的【程式启动器】,再选择【Terminal】,进入终端机界面。
  4. 进入终端机后,请执行指令【sudo zpool import】,列出目前这个主机上有哪些存在的ZFS储存集区,稍后要将它汇入。
  5. 确认有我们重要资料存在的vmdisk-2储存集区存在后,即可用指令将它强制挂接起来使用。请以【sudo zpool import -f -R /mnt vmdisk-2】指令执行,它会将vmdisk-2储存集区挂接至【/mnt】路径里,接着再以【zfs list】指令查看,即可看到该储存集区里的资料集以及磁区。
    说明:其实PVE安装碟也可以作为救援工具使用,但我选用【Ubuntu Desktop 21.04】的原因在于这还有视窗界面,对于要操作档案、检视内容以及使用网路传输作业,都会更加方便。
posted @ 2023-03-04 08:22  Evan-whc  阅读(81)  评论(0编辑  收藏  举报