简介
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}
需要替换为具体的版本号,比如luminous
、nautilus
等。如果不确定应该使用哪个版本,可以到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}
需要替换为具体的版本号,比如luminous
、nautilus
等。
安装完成之后,我们可以执行以下命令检查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
,有以下步骤:
- 连接
ceph-node1
节点; - 使用
sudo -s
切换到root用户; - 安装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
- 创建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
- 创建storage pool:
ceph osd poolcreate mypool 128
- 上传文件:
rados put myobject /home/user/myfile
示例2:从Ceph集群中下载文件
假设我们要从Ceph集群中的mypool
中下载文件myobject
,保存到本地路径/home/user/myfile
,有以下步骤:
- 连接任何一个已经安装了Ceph的节点;
- 使用
sudo -s
切换到root用户; - 下载文件:
rados get myobject /home/user/myfile
以上就是Linux下Ceph分布式安装使用教程的完整攻略。