Proxmox 集群Cluster+Ceph分布式储存 安装手记

By | 2019-03-20

本教程只记录安装配置过程

  • 先准备三台物理机
  • 三台机安装同一版本的Proxmox  [本教程版本为5.3.5]
  • 如果是单硬盘需要在安装PVE时,把硬盘分区,第一分区只用20G,只供PVE系统自用,其余全部留给Ceph;如果是多块硬盘就自行分区吧。
  • 网段定义为 192.168.5.0/24
    Node1  192.168.5.101
    Node2  192.168.5.102
    Node3  192.168.5.103
  • 三台机安装PVE后ssh进去,先升级PVE到最新版本
    # vi /etc/apt/sources.list.d/pve-enterprise.list  把第一行注释掉
    # vi /etc/apt/sources.list  内容清空后贴上以下内容

deb http://ftp.debian.org/debian stretch main contrib
deb http://ftp.debian.org/debian stretch-updates main contrib
deb http://ftp.hk.debian.org/debian stretch main contrib
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription
deb http://ftp.hk.debian.org/debian stretch-updates main contrib

# security updates
deb http://security.debian.org stretch/updates main contrib
  • 最后执行 apt update && apt dist-upgrade

前期准备工作完成,开始配置Cluster

一、先修改各节点机的 hosts 文件,目的是能用机器名称互访,而不是用IP地址。

二 各节点配置第二网卡,网段为10.10.10.0/24 供Ceph储存网络使用,注意配置PVE的网络需要重启一下才生效

三 在每个节点上安装 Ceph

# pveceph install 或者 后面加上版本名称,例如:

# pveceph install –version luminous

安装后执行 (只需在任一节点上执行

# pveceph init –network 10.10.10.0/24

在每个节点上安装Ceph Monitor

# pveceph createmon

然后在GUI界面为每个节点上用各自的第二块硬盘创建 Ceph OSD 

接着创建 Ceph 储存池,大概理解就是把以上三台机的OSD建成一个共享储存分区吧

至此 Ceph 安装完成

配置HA高可用

在GUI –> 数据中心 –> HA –> 群组 把所有节点选择加入

GUI –> 数据中心 –> HA  加入需要做HA的VM,群组使用需要的Ceph-pool 加入


最后请在各节点上安装ntp服务apt install ntp ,因为集群对时间的敏感度非常高,也可以使用内网的对时服务器。 

日常维护:

A.  当某一节点PVE系统出现问题,需要重建该节点时,从其他任一节点进入系统,执行以下操作。

从集群中删除故障ceph
1.登录集群任意物理正常节点系统,执行如下命令查看ceph osd状态: ceph osd tree
2.离线有问题的ceph osd,执行的操作如下   ceph osd out osd.X  X 代表 osd数字
3.删除已经离线osd认证信息,执行的操作如下: ceph auth del osd.X
4.彻底删除故障osd,操作如下:ceph osd rm X
5.查看集群osd状态,操作如下: ceph osd tree
6.删除故障节点的ceph磁盘,操作如下: ceph osd crush rm osd.X
7.从ceph集群中删除物理节点,操作如下 ceph osd crush rm  pvename
8.然后从集群删除故障节点,操作如下 pvecm delnode pvename

最后编辑 /etc/pve/ceph.conf  删除故障 监视器配置 或者使用
ceph mon rm pvename 即可
等系统重新做好 加入集群即可

B. 当需要把原来有OSD分区的硬盘重新格式化加入到OSD时

使用 wipefs -af /dev/sdx 命令把硬盘擦写一次,然后要重启PVE系统OSD才能正常擦除或加入。 

C. 集群迁移虚拟时ssh key出错问题,搞不清楚因什么原因导致的

错误信息:
task started by HA resource agent
2019-03-02 12:31:16 # /usr/bin/ssh -e none -o 'BatchMode=yes' -o 'HostKeyAlias=node19' [email protected] /bin/true
2019-03-02 12:31:16 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2019-03-02 12:31:16 @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
2019-03-02 12:31:16 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
2019-03-02 12:31:16 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
2019-03-02 12:31:16 Someone could be eavesdropping on you right now (man-in-the-middle attack)!
2019-03-02 12:31:16 It is also possible that a host key has just been changed.
2019-03-02 12:31:16 The fingerprint for the RSA key sent by the remote host is
2019-03-02 12:31:16 SHA256:HGJz17oiOEKfdsklj437bfdjklasjfdsfjdisGfepL5IFFbDdWkec.
2019-03-02 12:31:16 Please contact your system administrator.
2019-03-02 12:31:16 Add correct host key in /root/.ssh/known_hosts to get rid of this message.
2019-03-02 12:31:16 Offending RSA key in /etc/ssh/ssh_known_hosts:1
2019-03-02 12:31:16 remove with:
2019-03-02 12:31:16 ssh-keygen -f "/etc/ssh/ssh_known_hosts" -R "node19"
2019-03-02 12:31:16 RSA host key for node19 has changed and you have requested strict checking.
2019-03-02 12:31:16 Host key verification failed.
2019-03-02 12:31:16 ERROR: migration aborted (duration 00:00:00): Can't connect to destination address using public key
TASK ERROR: migration aborted

官方解决方法:

ssh到迁移的目标主机上执行
vi /root/.ssh/known_hosts   把第一行删除,如果没有这个文件的话可以跳过这步
pvecm add 192.168.18.10 -force    这里的IP指向原集群第一台创建的节点IP地址,代表重新加入该集群,这样会重新生成key的。
然后再迁移就正常了.

D. mds报slow错误

(mds.0): 4 slow metadata IOs are blocked > 30 secs, oldest blocked for 73 secs

Ceph Health状态一直WARN,Ceph OSDs和PGs无任何问题或者报错一直Active+clean

解决方法:

打开感叹号看详细的报错信息,把相关节点的虚拟机先迁移到其他节点上,然后重启该节点即点。

E: 快照无法删除

错误:TASK ERROR: rbd error: error setting snapshot context: (2) No such file or directory

解决: 
1)关闭该虚拟机
2)如锁了虚拟,使用 qm unlock vmid 解锁
3)进入 /etc/pve/qemu-server/ , 编辑 vmid.conf  把快照名称里的配置内容全部删除。

發佈留言