linux下ceph分布式安装使用教程

  • Post category:Linux

简介

Ceph是一个分布式存储系统,它提供了对象存储、块存储和文件存储服务。Ceph能够自动完成数据分布、数据容错和数据复制等任务,可以用来搭建高可用、高扩展性的存储架构。

本文将介绍如何在Linux下安装和使用Ceph,包括如何搭建Ceph集群、添加节点、创建storage pool、上传和下载文件等操作。我们将以Ubuntu 18.04为例讲解。

环境准备

在开始安装Ceph之前,我们需要准备好以下环境:

  • Ubuntu 18.04系统或者其他基于Debian的Linux系统
  • 安装好SSH服务,并能够通过SSH登录到其他节点(如果需要添加节点的话)
  • 配置好网络,确保各节点之间能够互相通信
  • 每个节点至少有一个硬盘用来存储数据

安装Ceph

第一步:添加Ceph的APT源

在终端中执行以下命令,添加Ceph的APT源:

wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
sudo add-apt-repository 'deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main'

其中{ceph-stable-release}需要替换为具体的版本号,比如luminousnautilus等。如果不确定应该使用哪个版本,可以到Ceph官网查看最新的稳定版本。

第二步:安装Ceph

添加完APT源之后,执行以下命令安装Ceph:

sudo apt update
sudo apt install ceph-deploy

第三步:创建Ceph集群

执行以下命令创建Ceph集群:

mkdir my-cluster
cd my-cluster
ceph-deploy new {hostname1} {hostname2} {hostname3}

其中{hostname1}{hostname2}{hostname3}需要替换为实际的节点主机名或IP地址。这些节点需要能够互相访问,并且已经安装好了SSH服务。

执行上述命令之后,my-cluster目录下将会生成一个叫做ceph.conf的配置文件,我们可以修改这个文件来配置Ceph集群的参数。

第四步:安装Ceph

执行以下命令在所有节点上安装Ceph:

ceph-deploy install --release {ceph-stable-release} {hostname1} {hostname2} {hostname3}

其中{ceph-stable-release}需要替换为具体的版本号,比如luminousnautilus等。

安装完成之后,我们可以执行以下命令检查Ceph的版本:

ceph --version

第五步:初始化Ceph集群

执行以下命令初始化Ceph集群:

ceph-deploy mon create-initial

这个命令会在第一个节点上创建一个Ceph Monitor,用来监控Ceph集群的状态。

第六步:添加更多节点

如果需要添加更多的节点到Ceph集群中,可以执行以下命令:

ceph-deploy new {new-node}       # 创建新节点的配置文件
ceph-deploy install {new-node}   # 安装Ceph到新节点
ceph-deploy mon add {new-node}   # 在新节点上添加监视器
ceph-deploy osd create {new-node}:/path/to/disk   # 相应添加磁盘到新节点

其中{new-node}需要替换为新节点实际的主机名或IP地址,/path/to/disk需要替换为新节点上用来存储数据的磁盘路径。

第七步:创建storage pool

执行以下命令创建Ceph pool:

ceph osd poolcreate mypool 128

其中mypool是pool的名字,128是pool的PG数量。

第八步:上传文件

执行以下命令在Ceph集群中上传文件:

rados put myobject /path/to/local/file

其中myobject是对象名,/path/to/local/file是本地文件路径。

第九步:下载文件

执行以下命令从Ceph集群中下载文件:

rados get myobject /path/to/local/file

其中myobject是对象名,/path/to/local/file是本地文件路径。

示例说明

示例1:将文件上传到Ceph集群

假设我们有一台节点名为ceph-node1,要将本地文件/home/user/myfile上传到Ceph集群中的mypool,有以下步骤:

  1. 连接ceph-node1节点;
  2. 使用sudo -s切换到root用户;
  3. 安装Ceph:

wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
sudo add-apt-repository 'deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main'
sudo apt update
sudo apt install ceph-deploy

  1. 创建Ceph集群:

cd ~
mkdir my-cluster
cd my-cluster
ceph-deploy new ceph-node1
ceph-deploy install --release luminous ceph-node1
ceph-deploy mon create-initial
ceph-deploy osd create ceph-node1:/dev/sdb

  1. 创建storage pool:

ceph osd poolcreate mypool 128

  1. 上传文件:

rados put myobject /home/user/myfile

示例2:从Ceph集群中下载文件

假设我们要从Ceph集群中的mypool中下载文件myobject,保存到本地路径/home/user/myfile,有以下步骤:

  1. 连接任何一个已经安装了Ceph的节点;
  2. 使用sudo -s切换到root用户;
  3. 下载文件:

rados get myobject /home/user/myfile

以上就是Linux下Ceph分布式安装使用教程的完整攻略。