CEPH环境搭建与Swift调用

前言

Ceph 是一个高性能、可靠、可扩展的开源存储平台。它是一个自由的分布式存储系统,提供了对象、块和文件级存储的接口,并可以不受单点故障的影响而运行。上周调研了CEPH文件集群的优劣性,准备做一个实际搭建的性能测试,在物理机上虚了多个ubuntu出来,模拟多台物理机集群,参考网络资源,搭建起来的,但是有遇到一些错误,可能对于接触过linux的人来说都不算很严重的难题,这里做个记录。本文参考:https://linux.cn/article-8182-1.html, 但遇到了一些错误,记录搭建与解决错误是本文的主旨,错误处理在最后一节。

前提

1:5个安装了 Ubuntu 16.04 的服务器节点
2:所有节点上的 root 权限
(可选前提,如果配置osd为逻辑分区,需要在linux机器上挂一块逻辑分区,供格式化osd使用)
3:osd机器上sdb空闲分区

配置所有节点

配置5个节点来准备安装CEPH集群软件,所以你必须拥有root权限,在5台机器上都安装ssh-server。
1,创建cephuser用户,统一用户名和密码(tip:在所有节点都运行如下指令),

useradd -m -s /bin/bash cephuser
passwd cephuser

创建完新用户后,我们需要给 cephuser 配置无密码的 sudo 权限。这意味着 cephuser可以不先输入密码而获取到 sudo 权限运行:

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

2,安装 NTP 来同步所有节点的日期和时间。先运行 ntpdate 命令通过 NTP 设置日期。我们将使用 US 池的 NTP 服务器。然后开启并使 NTP 服务在开机时启动。

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp

3,如果你和我一样在虚拟机里面搭建集群,那么附加运行:

sudo apt-get install -y open-vm-tools

因为ceph-deploy等需要python环境,所以安装python环境,和依赖包parted:

sudo apt-get install -y python python-pip parted

4,编辑hosts文件(vi /etc/hosts):

# ceph-admin
192.168.40.16        mlv1-VirtualBox
# ceph-mon1
192.168.40.97        mlv2-VirtualBox
# ceph-osd1
192.168.40.106       mlv4-VirtualBox
# ceph-osd2
192.168.40.100       mlv6-VirtualBox
# ceph-gateway (client)
192.168.40.95        mlv3-VirtualBox

这里hostname最好和你集群机器的主机名一样,我就因为不一样在ssh安装ceph到其他节点的时候报错了。

配置SSH服务器

这一步的目的是配置admin节点,完成admin节点无密码访问其他节点,首先登录到ceph-admin节点:

ssh root@mlv1-VirtualBox
su - cephuser

管理节点用来安装配置所有集群节点,所以 ceph-admin 上的用户必须有不使用密码连接到所有节点的权限。我们需要为 ‘ceph-admin’ 节点的 cephuser 用户配置无密码 SSH 登录权限。
1, 生成密钥:

ssh-keygen
# 提示输入密码的时候请回车,让密码为空

2,为 ssh 创建一个配置文件

vim ~/.ssh/config

我的配置文件如下:

Host ceph-admin
        Hostname  mlv1-VirtualBox
        User cephuser

Host mon1
        Hostname  mlv2-VirtualBox
        User cephuser

Host ceph-osd1
        Hostname  mlv4-VirtualBox
        User cephuser

Host ceph-osd2
        Hostname  mlv6-VirtualBox
        User cephuser

Host ceph-client
        Hostname  mlv3-VirtualBox
        User cephuser

保存退出,并赋予文件权限,接着通过 ssh-copy-id 命令增加密钥到所有节点。

chmod 644 ~/.ssh/config
ssh-keyscan ceph-osd1 ceph-osd2 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id mon1

当请求输入密码时输入你的 cephuser 密码,完成以上配置之后admin节点就可以访问集群别的机器了,顺带截个图:
image

Ubuntu 防火墙配置

出于安全原因,我们需要在服务器打开防火墙。我们更愿使用 Ufw(不复杂防火墙)来保护系统,这是 Ubuntu 默认的防火墙。在这一步,我们在所有节点开启 ufw,然后打开 ceph-admin、ceph-mon 和 ceph-osd 需要使用的端口。
1,admin节点(安装ufw包)

ssh root@ceph-admin
sudo apt-get install -y ufw
# 打开 80,2003 和 4505-4506 端口,然后重启防火墙,开机启动。
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值