增加/删除 OSD

新增和拆除 Ceph 的 OSD 进程相比其它两种要多几步。 OSD 守护进程把数据写入磁盘和日志,所以你得相应地提供一 OSD 数据盘和日志分区路径(这是最常见的配置,但你可以按需调整)。

从 Ceph v0.60 起, Ceph 支持 dm-crypt 加密的硬盘,在准备 OSD 时你可以用 --dm-crypt 参数告诉 ceph-deploy 你想用加密功能。也可以用 --dmcrypt-key-dir 参数指定 dm-crypt 加密密钥的位置。

在投建一个大型集群前,你应该测试各种驱动器配置来衡量其吞吐量。详情见数据存储

列举磁盘

执行下列命令列举一节点上的磁盘:

ceph-deploy disk list {node-name [node-name]...}

擦净磁盘

用下列命令擦净(删除分区表)磁盘,以用于 Ceph :

ceph-deploy disk zap {osd-server-name}:{disk-name}
ceph-deploy disk zap osdserver1:sdb

Important

这会删除所有数据。

准备 OSD

创建集群、安装 Ceph 软件包、收集密钥完成后你就可以准备 OSD 并把它们部署到 OSD 节点了。如果你想确认某磁盘或擦净它,参见列举磁盘擦净磁盘

ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
ceph-deploy osd prepare osdserver1:sdb:/dev/ssd
ceph-deploy osd prepare osdserver1:sdc:/dev/ssd

prepare 命令只准备 OSD 。在大多数操作系统中,硬盘分区创建后,不用 activate 命令也会自动执行 activate 阶段(通过 Ceph 的 udev 规则)。详情见激活 OSD

前例假定一个硬盘只会用于一个 OSD 守护进程,以及一个到 SSD 日志分区的路径。我们建议把日志存储于另外的驱动器以最优化性能;你也可以指定一单独的驱动器用于日志(也许比较昂贵)、或者把日志放到 OSD 数据盘(不建议,因为它有损性能)。前例中我们把日志存储于分好区的固态硬盘。

Note

在一个节点运行多个 OSD 守护进程、且多个 OSD 守护进程共享一个日志分区时,你应该考虑整个节点的最小 CRUSH 故障域,因为如果这个 SSD 坏了,所有用其做日志的 OSD 守护进程也会失效。

激活 OSD

准备好 OSD 后,可以用下列命令激活它。

ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
ceph-deploy osd activate osdserver1:/dev/sdb1:/dev/ssd1
ceph-deploy osd activate osdserver1:/dev/sdc1:/dev/ssd2

activate 命令会让 OSD 进入 upin 状态,此命令所用路径和 prepare 相同。

创建 OSD

你可以用 create 命令一次完成准备 OSD 、部署到 OSD 节点、并激活它。 create 命令是依次执行 prepareactivate 命令的捷径。

ceph-deploy osd create {node-name}:{disk}[:{path/to/journal}]
ceph-deploy osd create osdserver1:sdb:/dev/ssd1

拆除 OSD

Note

稍后完成。手动过程见删除 OSD