做者:田逸(sery@163.com)
web
刚躺下,就收到proxmox虚拟机集群报警的邮件,顺便瞧了一眼,发现问题。数据库
磁盘空间满了,致使备份失败。仔细一看,备份目录为/var/lib/vz/dump,这个是本地文件系统的目录,但我之前设定的备份目录是外挂的nfs,空间大得很啊!bash
担忧proxmox集群因系统根分区被塞满而影响整个集群的服务,毕竟全部的业务都从阿里云回迁到该超融合私有云集群上。赶忙爬起来,***拨号,登陆到四个物理节点。执行指令:ide
root@pve10:~# ceph osd tree
半天没反应,其它几个机器皆然。大概等待了数分钟,输出提示链接超时。再从proxmox集群web管理界面查看,crush map 没有输出。阿里云
继续点菜单“监视器”,quorum列的值所有为否。spa
再点击管理界面下部任务日志信息,确实是备份错误所引发。3d
再双击错误信息,可看到更详细而有用的信息。日志
幸运的是,虽然ceph异常,但运行的其上的虚拟机及应用,竟然还能正常访问,只是速度慢了不少。还好,凌晨没什么访问量了。先尝试删掉全部物理节点全部的备份,无论它们是否是被成功的备份。blog
root@pve10:/var/lib/vz/dump#rm -rf
root@pve10:/var/lib/vz/dump#rm -rf虚拟机 |
释放空间,以便ceph相关的服务能向根分区写入日志。其中ceph日志的默认路径为/var/log/ceph ,若是资金预算许可,建议单独用一个物理磁盘来存放ceph日志。即建立一个分区,挂接到目录/var。
删除备份文件之后,磁盘空间得以释放,而后电话询问其它人,这几天有没有人到管理后台去操做,并强烈建议把集群的管理权限收回来(非系统管理的技术人员有全部权限)。
通知完之后,再切换到宿主机系统查看ceph日志,主要是ceph.log及ceph-osd.log,发现输出已经没有报错信息。由此判断,故障已经排除。Proxmox web管理界面,选中某个物理节点,强制启动监视器。
启动后,“quorum”列的值由“否“变成”是“。
再点左侧菜单OSD,磁盘都出来了!
切换到宿主机系统debian,查看osd,也能正常工做了。
root@pve10:/var/log/ceph# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 34.92139 root default -3 8.73035 host pve10 0 hdd 2.18259 osd.0 up 1.00000 1.00000 1 hdd 2.18259 osd.1 up 1.00000 1.00000 2 hdd 2.18259 osd.2 up 1.00000 1.00000 3 hdd 2.18259 osd.3 up 1.00000 1.00000 -5 8.73035 host pve20 4 hdd 2.18259 osd.4 up 1.00000 1.00000 5 hdd 2.18259 osd.5 up 1.00000 1.00000 6 hdd 2.18259 osd.6 up 1.00000 1.00000 7 hdd 2.18259 osd.7 up 1.00000 1.00000 -7 8.73035 host pve30 8 hdd 2.18259 osd.8 up 1.00000 1.00000 9 hdd 2.18259 osd.9 up 1.00000 1.00000 10 hdd 2.18259 osd.10 up 1.00000 1.00000 11 hdd 2.18259 osd.11 up 1.00000 1.00000 -9 8.73035 host pve40 12 hdd 2.18259 osd.12 up 1.00000 1.00000 13 hdd 2.18259 osd.13 up 1.00000 1.00000 14 hdd 2.18259 osd.14 up 1.00000 1.00000 15 hdd 2.18259 osd.15 up 1.00000 1.00000
root@pve10:/var/log/ceph# ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 34.92139 root default -3 8.73035 host pve10 0 hdd 2.18259 osd.0 up 1.00000 1.00000 1 hdd 2.18259 osd.1 up 1.00000 1.00000 2 hdd 2.18259 osd.2 up 1.00000 1.00000 3 hdd 2.18259 osd.3 up 1.00000 1.00000 -5 8.73035 host pve20 4 hdd 2.18259 osd.4 up 1.00000 1.00000 5 hdd 2.18259 osd.5 up 1.00000 1.00000 6 hdd 2.18259 osd.6 up 1.00000 1.00000 7 hdd 2.18259 osd.7 up 1.00000 1.00000 -7 8.73035 host pve30 8 hdd 2.18259 osd.8 up 1.00000 1.00000 9 hdd 2.18259 osd.9 up 1.00000 1.00000 10 hdd 2.18259 osd.10 up 1.00000 1.00000 11 hdd 2.18259 osd.11 up 1.00000 1.00000 -9 8.73035 host pve40 12 hdd 2.18259 osd.12 up 1.00000 1.00000 13 hdd 2.18259 osd.13 up 1.00000 1.00000 14 hdd 2.18259 osd.14 up 1.00000 1.00000 15 hdd 2.18259 osd.15 up 1.00000 1.00000 |
假如经过删除备份释放空间不能恢复服务,最坏的打算,就是重建集群,从nfs备份中恢复了。这不会丢失数据,由于数据库不在此集群中。
最后,记得把备份目录改为nfs共享村存储,收回系统权限,以绝后患!