首页 > 其他分享 >ceph新增节点

ceph新增节点

时间:2023-08-08 12:38:20浏览次数:45  
标签:sudo 新增 ceph4 ceph etc yum mon 节点


我们在上一篇文章中已经学习了手动安装ceph和ceph的挂载使用
手动安装ceph和使用

本章记录我们在日常运维中经常遇到的场景,就是如何给这个集群扩容–增加节点。

假如我们新采购了一台服务器想融入到ceph集群中,步骤如下:

调整网络情况

ip地址需要与ceph集群在同一内网内

使用命令如下:

ifconfig -a #查看网卡情况

ceph新增节点_元数据


使用命令编辑网络配置

vi  /etc/sysconfig/network-scripts/ifcfg-eth0

输入内容格式参考如下,ip地址需要与ceph集群在同一内网内:

DEVICE=eth1
HWADDR=00:0C:29:66:6B:7C
TYPE=Ethernet
UUID=af4a45e3-36eb-4bae-a2ec-5d35a988a4ae
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.199.84
NETMASK=255.255.255.0
GATEWAY=192.168.199.1

esc输入:wq回车保存退出

重启网络使新配置生效

/etc/init.d/network restart

新增用户

一般在服务器我们都不直接使用root来进行操作,所以最好增加一个有sudo权限的其他用户名,例如我这里增加用户zzq。
使用命令如下:

adduser zzq
passwd zzq

输入密码

增加ssh权限
使用命令编辑配置文件

vi /etc/ssh/sshd_config

在最后输入

AllowUsers [email protected] zzq
AllowUsers [email protected] root

esc输入:wq回车保存退出

增加sudo权限
使用命令进入sudo配置文件

visudo

在root ALL=(ALL) ALL后输入

zzq     ALL=(ALL)     ALL

esc输入:wq回车保存退出

磁盘空间准备

首先要准备好非系统盘的磁盘空间,磁盘分区可参考:
VMware虚拟机添加新硬盘以及对磁盘进行分区挂载

使用命令查看磁盘情况:

sudo df -h
sudo fdisk -l

关闭防火墙

centOS 7.0版本

sudo systemctl stop firewalld.service   #停止firewall
sudo systemctl disable firewalld.service    #禁止firewall开机启动
sudo firewall-cmd --state           #查看防火墙状态

centOS 6.0版本

sudo service iptables stop  #停止firewall
sudo chkconfig iptables off     #禁止firewall开机启动
sudo service iptables status            #查看防火墙状态

修改同步时区

centOS7

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo yum -y install ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd
sudo ntpstat

CentOS6

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo yum -y install ntp
sudo /etc/init.d/ntpd stop
sudo /etc/init.d/ntpd start
sudo ntpstat

修改hosts(所有节点)

把新节点的host增加进去

sudo vi /etc/hosts

输入如下内容:

192.168.199.80 admin
192.168.199.81  ceph1
192.168.199.82  ceph2
192.168.199.83  ceph3
192.168.199.84  ceph4

使用命令分别修改新机子的hostname为ceph4
修改运行时Linux系统的hostname,即不需要重启系统
hostname命令可以设置系统的hostname

sudo hostname ceph4

ceph4即要设置的新的hostname,运行后立即生效,但是在系统重启后会丢失所做的修改,如果要永久更改系统的hostname,就要修改相关的设置文件。

永久更改Linux的hostname
如果要永久修改RedHat的hostname,就修改/etc/sysconfig/network文件,将里面的HOSTNAME这一行修改成HOSTNAME=NEWNAME,其中NEWNAME就是你要设置的hostname。
Debian发行版的hostname的配置文件是/etc/hostname。
我们这里使用命令

sudo vi /etc/sysconfig/network

修该配置文件后,重启系统就会读取配置文件设置新的hostname。

修改yum源

有时候CentOS默认的yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想。这时候需要将yum源设置为国内镜像站点。国内主要开源的开源镜像站点应该是网易和阿里云了。

更多源参考:
https://www.centos.org/download/mirrors/

如果报错-bash: wget: command not found则使用命令安装wget。

sudo yum -y install wget

或者

rpm 安装
rpm下载源地址:http://vault.centos.org/6.4/os/x86_64/Packages/
下载wget的RPM包:http://vault.centos.org/6.4/os/x86_64/Packages/wget-1.12-1.8.el6.x86_64.rpm
使用xftp上传到服务器中使用如下命令安装即可。

sudo rpm  -i wget-1.12-1.8.el6.x86_64.rpm

网易

cd /etc/yum.repos.d
sudo mv CentOS-Base.repo CentOS-Base.repo.bk
sudo wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
sudo yum makecache

注意原链接http://mirrors.163.com 中很多6.4分支版本的已经没有源了。只能使用6分支中的源。

阿里云

cd /etc/yum.repos.d
sudo mv CentOS-Base.repo CentOS-Base.repo.bk
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
sudo yum makecache

安装epel仓库

使用命令

sudo yum install epel-release -y

或者

sudo rpm -i http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -i http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

添加yum ceph仓库

sudo vi /etc/yum.repos.d/ceph.repo

把如下内容粘帖进去,用 Ceph 的最新主稳定版名字替换 {ceph-stable-release} (如 firefly ),用你的Linux发行版名字替换 {distro} (如 el6 为 CentOS 6 、 el7 为 CentOS 7 、 rhel6 为 Red Hat 6.5 、 rhel7 为 Red Hat 7 、 fc19 是 Fedora 19 、 fc20 是 Fedora 20 )。最后保存到 /etc/yum.repos.d/ceph.repo 文件中。

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

例如我的是CentOS6版本则需要使用的是el6,千万别搞错,不然后面安装会报错很多版本不一致和You could try using –skip-broken to work around the problem。
安装ceph使用配置如下:

[ceph]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-hammer/el6/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc

安装ceph

ceph所有ceph节点都安装,ceph-deploy只需admin节点安装

sudo yum -y update
sudo  yum -y install --release hammer ceph

允许无密码 SSH 登录(admin节点)

把公钥拷贝至所有节点

sudo ssh-copy-id root@ceph4

验证是否可以无密码SSH登录

sudo ssh ceph4

新增OSD节点

在admin节点上运行

sudo ssh ceph4
sudo mkdir /var/local/osd
exit

从 ceph-deploy 节点准备 OSD

sudo ceph-deploy osd prepare ceph4:/var/local/osd

激活 OSD

sudo ceph-deploy osd activate ceph4:/var/local/osd

一旦你新加了 OSD , Ceph 集群就开始重均衡,把归置组迁移到新 OSD 。可以用下面的 ceph 命令观察此过程:

ceph -w

我们能看到归置组状态从 active + clean 变为 active ,还有一些降级的对象;迁移完成后又会回到 active + clean 状态( Control-C 退出)。

添加元数据服务器

至少需要一个元数据服务器才能使用 CephFS ,执行下列命令创建元数据服务器:

sudo ceph-deploy mds create ceph4

注意,当前生产环境下的 Ceph 只能运行一个元数据服务器。你可以配置多个,但现在ceph还不会为多个元数据服务器的集群提供商业支持。

添加 MONITORS

Ceph 存储集群需要至少一个 Monitor 才能运行。为达到高可用,典型的 Ceph 存储集群会运行多个 Monitors,这样在单个 Monitor 失败时不会影响 Ceph 存储集群的可用性。Ceph 使用 PASOX 算法,此算法要求有多半 monitors(即 1 、 2:3 、 3:4 、 3:5 、 4:6 等 )形成法定人数。

新增监视器到 Ceph 集群。

sudo ceph-deploy mon add ceph4

如果报错[ceph_deploy][ERROR ] RuntimeError: mon keyring not found; run ‘new’ to create a new cluster

主要需要需要注意 配置文件和key的同步 以及编辑ceph.conf看看里面的配置是否正确。

ceph-deploy --overwrite-conf config push admin ceph4

ceph-deploy admin ceph4

如果报错

[ceph4][DEBUG ] === mon.ceph4 === 
[ceph4][DEBUG ] Starting Ceph mon.ceph4 on ceph4...
[ceph4][WARNIN] 2018-05-25 01:40:56.446526 7ffbbc5297a0 -1 no public_addr or public_network specified, and mon.ceph4 not present in monmap or ceph.conf
[ceph4][DEBUG ] failed: 'ulimit -n 32768;   /usr/bin/ceph-mon -i ceph4 --pid-file /var/run/ceph/mon.ceph4.pid -c /etc/ceph/ceph.conf --cluster ceph '
[ceph4][ERROR ] RuntimeError: command returned non-zero exit status: 1
[ceph_deploy.mon][ERROR ] Failed to execute command: /sbin/service ceph -c /etc/ceph/ceph.conf start mon.ceph4
[ceph_deploy][ERROR ] GenericError: Failed to add monitor to host:  ceph4

说明缺少public_network的配置

在admin节点找到ceph.conf

sudo vi ceph.conf

把新的mon节点的ip加入mon_host,把新mon节点的hostname加入mon_initial_members,同时加入public_network配置,public_network与自己的内网ip段对应。
例如:
public_network=192.168.199.0/24
我们的配置如下:

[global]
fsid = 5862afaf-4f46-4d6f-9d30-cb911ce335fc
mon_initial_members = ceph1, ceph2, ceph3,ceph4
mon_host = 192.168.199.81,192.168.199.82,192.168.199.83,192.168.199.84
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public_network=192.168.199.0/24
osd pool default size = 2
osd pool default min size = 1
osd pool default pg num = 120
osd pool default pgp num = 120
osd crush chooseleaf type = 1

重新在admin节点运行

ceph-deploy --overwrite-conf config push admin ceph1 ceph2 ceph3 ceph4
sudo ceph-deploy --overwrite-conf mon add ceph4

新增 Monitor 后,Ceph 会自动开始同步并形成法定人数。你可以用下面的命令检查法定人数状态:

ceph quorum_status --format json-pretty

Tip 当你的 Ceph 集群运行着多个 monitor 时,各 monitor 主机上都应该配置 NTP ,而且要确保这些 monitor 位于 NTP 服务的同一级。

实在不行重新定义一个新集群

则使用以下命令重新声明monitor新集群

sudo ceph-deploy new ceph1 ceph2 ceph3 ceph4
sudo ceph-deploy  --overwrite-conf mon  create-initial


标签:sudo,新增,ceph4,ceph,etc,yum,mon,节点
From: https://blog.51cto.com/u_16218512/7007050

相关文章

  • 遇到问题--hadoop---节点服务重启成功一段时间后又停止
    情况我们发现CDH中一个hbase的regionServer节点经常自动停止,没有明显的错误信息。重启后又过一小段时间又自动停止原因这种情况一般都是需要排查相关服务的日志的,比如我们是regionServer节点的服务,则需要先看regionServer节点的日志。很幸运的是原因很快就找到了。一进入日志界面......
  • K8S使用ceph-csi持久化存储之RBD
    Kubernetes集成Ceph一般有两种方案:Ceph组件运行在Kubernetes中,可以使用Rook;还有就是Kubernetes集成外部的Ceph集群。Ceph版本[root@master~]#ceph-vcephversion14.2.22(ca74598065096e6fcbd8433c8779a2be0c889351)nautilus(stable)Kubernetes版本[root@master~]#k......
  • ceph-deploy部署ceph集群 nautilus 14.2.22
    规划主机名IP地址系统ceph版本ceph硬盘大小组件规划master192.168.1.60CentOS7.9ceph-15.2.10sdb100GOSD、MOD、MDS、MGR主节点node01192.168.1.70CentOS7.9ceph-15.2.10sdb100GOSD从节点node02192.168.1.80CentOS7.9ceph-15.2.10sdb100......
  • Jenkins 增加子节点
    以Windows为例主节点配置首先进入security界面在agent中做如下配置添加子节点进入节点管理页面添加子节点然后填写相关信息此时子节点已创建完成子节点配置第一步,首先安装Javajdk-11,前往oracle官网下载jdk11https://www.oracle.com/java/technologies/do......
  • ubuntu wkhtmltopdf 新增Calibri字体
    最近使用wkhtmltopdf将html转为PDF时,在html中使用了Calibri字体,但转换为PDF后,PDF中使用的字体却不是Calibri,,怀疑是转PDF的ubuntu服务器上没有Calibri字体使用locatefont|grep alibri试了一下,没有返回值,说明该服务器上真的没有这个字体,考虑安装一下知识点:1.ubuntu可以与windo......
  • Ceph常用命令汇总
    对象用户和桶$radosgw-adminusercreate--display-name="johnnyrotten"--uid=johnny$radosgw-adminuserrm--uid=johnny$radosgw-adminuserrename--uid=johny--new-uid=joe$radosgw-adminuserrm--uid=johnny--purge-data$radosgw-adminbucketr......
  • k8s 部分节点 nodelocaldns [ERROR] Failed to read node-cache coreFile /etc/coredn
      部分K8S节点nodelocaldnsCrashLoopBackOff状态报错,报错信息如下:#kubectllogsnodelocaldns-w9mgz-nkube-system2023/08/0703:18:33[INFO]UsingCorefile/etc/coredns/Corefile2023/08/0703:18:33[ERROR]Failedtoreadnode-cachecoreFile/etc/coredns/Co......
  • Ceph对象存储ingress配置https
    每当引用TLSSecrets时,指的是PEM编码的X.509、RSA(2048)Secrets。可以使用以下命令生成自签名证书和私钥:$opensslreq-x509-nodes-days3650-newkeyrsa:2048-keyout${KEY_FILE}-out${CERT_FILE}-subj"/CN=${HOST}/O=${HOST}"例如:$opensslreq-x509-nodes......
  • ceph高速缓存池
    一.缓存池运维1.1自定义硬盘类型cephosdcrushclasslscephosdcrushclasscreatessdcephosdcrushclasscreatesatacephosdcrushrm-device-classosd.3cephosdcrushset-device-classssdosd.31.2自定义角色管理不同类型硬盘cephosdcrushrulel......
  • 24. 两两交换链表中的节点 【递归】
    给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。输入:head=[1,2,3,4]输出:[2,1,4,3] 思路:递归fromtypingimportOptional#创建链表defcreate_linked_list(lst):ifnotlst:......