- Ceph Kernel Client: We currently recommend:
• v3.6.6 or later in the v3.6 stable series
• v3.4.20 or later in the v3.4 stable series - 软件包都用 release.asc 密钥加密签名过,把我们的发布密钥加到您系统的可信密钥列表中可避免安全警告:
sudo rpm --import 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' - 用发行版代码名替换下面命令中的{DISTRO}:
su -c 'rpm -Uvh http://ceph.com/rpm-bobtail/{DISTRO}/x86_64/ceph-release-1-0.el6.noarch.rpm'
例如,拿 CentOS 6 或其他 RHEL6 衍生物(e16)来说:
su -c 'rpm -Uvh http://ceph.com/rpm-bobtail/el6/x86_64/ceph-release-1-0.el6.noarch.rpm'
也可以直接从网址下载:http://ceph.com/rpm-firefly/ - 当前我们给 CentOS-6 和 Fedora 17 平台构建软件包,软件库包会安装软件仓库,具体到系统可能用于 yum 或
up2date。
对 CentOS 6 来说:
su -c 'rpm -Uvh http://ceph.com/rpms/el6/x86_64/ceph-release-1-0.el6.noarch.rpm'
你可以从下列地址直接下载 RPM:
http://ceph.com/rpm-testing - 升级 OSD 包:
ssh {osd-host}
sudo apt-get update && sudo apt-get install ceph
重启 OSD,N 是 OSD 号:
service ceph restart osd.N
确认升级后的 OSD 加入了集群:
ceph osd stat #成功升级一个 OSD 后,再继续其它的,直到完成所有 OSD。 - 升级 ceph 包:
ssh {mon-host}
sudo apt-get update && sudo apt-get install ceph
重启监视器:
service ceph restart mon.{name}
确认监视器重入法定人数。
ceph mon stat - ceph 注重数据安全,就是说,它收到数据已写入硬盘的通知时,数据确实已写入硬盘。使用较老的内核(版
本小于 2.6.33)时,如果日志在原始硬盘上,就要禁用写缓存;较新的内核没问题。
用 hdparm 禁用硬盘的写缓冲功能。
sudo hdparm -W 0 /dev/hda 0
在生产环境,建议您在系统盘运行 OSD,在另外的硬盘里放数据。如果必须把数据和系统放在一个硬盘里,
最好给数据分配一个单独的分区。 - ceph 的 OSD 有赖于底层文件系统的扩展属性(XATTR)存储各种内部对象状态和元数据。底层文件系统必须
给 XATTR 提供足够容量,btrfs 没有限制随文件存储的 xattr 元数据;xfs 的限制相对大(64KB),多数部署都不
会有瓶颈;ext4 的则太小而不可用。要用这些文件系统,你得把下面这行写入 ceph.conf 的[osd]段里。
使用 ext4 文件系统时,应该一直把下面的配置放于[osd]段下;用 btrfs 和 xfs 时可以选填。
filestore xattr use omap = true - 启动 ceph 集群时,每个守护进程都从 ceph.conf 里查找它自己的配置。手动配置时,你需要创建 ceph.conf 来
配置集群。 - 默认的 ceph.conf 位置相继排列如下:
1. $CEPH_CONF (i.e., the path following the $CEPH_CONF environment variable)
2. -c path/path (i.e., the -c command line argument)
3. /etc/ceph/ceph.conf
4. ~/.ceph/config
5. ./ceph.conf (i.e., in the current working directory) - 一个例程由类型和它的例程编号(ID)确定,OSD 的例程 ID 只能是
数字,监视器和元数据服务器的 ID 可包含字母和数字。 - 元变量大大简化了集群配置,ceph 会把配置的元变量展开为具体值;元变量功能很强大,可以用在[global]、
[osd]、[mon]、[mds]段里,类似于 bash 的 shell 扩展。
Example: /etc/ceph/$cluster.keyring
Default: ceph - 没有性能优化时,ceph 把日志和 OSD 数据存储相同的硬盘上;要优化 OSD 性能,可以把日志分离到单独的硬
盘上(例如,固态硬盘能提供高日志性能)。 - ceph 可以在运行时更改 ceph-osd、ceph-mon、ceph-mds 守护进程的配置,这种功能在增加/降低日志输出、启
用/禁用调试设置、甚至是运行时优化的时候非常有用,下面是运行时配置的用法:
ceph {daemon-type} tell {id or *} injectargs '--{name} {value} [--{name} {value}]'
用 osd、mon、mds 中的一个替代{daemon-type},你可以用星号(*)或具体进程 ID(其数字或字母)把运行时
配置应用到一类进程的所有例程,例如增加名为 osd.0 的 ceph-osd 进程的调试级别的命令如下:
ceph osd tell 0 injectargs '--debug-osd 20 --debug-ms 1' - 如果你的 ceph 集群在运行,而你想看一个在运行进程的配置,用下面的命令:
ceph --admin-daemon {/path/to/admin/socket} config show | less - 例如如果集群名是 ceph(默认值),你可以用下面的命令检
索 osd.0 的配置:
ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less - 要从集群主机卸载 ceph 软件包,在管理主机的终端下执行:
ceph-deploy uninstall {hostname [hostname] ...}
在 Debian 或 Ubuntu 系统上你也可以:
ceph-deploy purge {hostname [hostname] ...}
此工具会从指定主机上卸载 ceph 软件包,另外 purge 会删除配置文件。 - 不建议把监视器和 OSD 置于同一主机上。
如果你想删除集群中的某个监视器,可以用 destroy 选项。
ceph-deploy mon destroy {host-name [host-name]...} - 不再使用 ceph-deploy(或另建一集群)时,你应该删除管理主机上、本地目录中的密钥。可用下列命令:
ceph-deploy forgetkeys - 执行下列命令列举一节点上的磁盘:
ceph-deploy disk list {node-name [node-name]...}
用下列命令擦净(删除分区表)磁盘,以用于 ceph:
ceph-deploy disk zap {osd-server-name}:{disk-name}
ceph-deploy disk zap osdserver1:sdb - 要清理掉/var/lib/ceph 下的所有数据(但保留 ceph 软件包),执行 purgedata 命令:
ceph-deploy purgedata {hostname} [{hostname} ...]
要清理掉/var/lib/ceph 下的所有数据、并卸载 ceph 软件包,用 purge 命令。
ceph-deploy purge {hostname} [{hostname} ...] - 要允许一主机以管理员权限执行 ceph 命令,用 admin 命令:
ceph-deploy admin {host-name [host-name]...} - 要把改过的配置文件分发给集群内各主机,可用 config push 命令。
ceph-deploy config push {host-name [host-name]...} - 要从集群内的一主机检索配置文件,用 config pull 命令。
ceph-deploy config pull {host-name [host-name]...} - 使用-a(在所有节点上执行)选项可操作整个集群,你也可以指定一个具体例程把操作限定到某一个例程,例
如要启动本地节点的一个例程,按下列语法:
sudo /etc/init.d/ceph start osd.0
要启动其他节点上的一个例程,按下列语法:
sudo /etc/init.d/ceph -a start osd.0 - 执行命令时一旦加了-a(意为在所有节点执行),整个 ceph 集群都会关闭。你也可以加选项把操作限定到某
个具体例程。要停止本地节点上的一个守护进程,按下列语法:
sudo /etc/init.d/ceph stop osd.0
要停止别处守护进程,按下列语法:
sudo /etc/init.d/ceph -a stop osd.0 - 要在交互模式下运行 ceph,不要带参数运行 ceph,例如:
ceph
ceph>health
ceph>status
ceph>quorum_status
ceph>mon_status - 如果你的 ceph.conf 或密钥环不在默认路径下,你得指定:
ceph -c /path/to/conf -k /path/to/keyring health - 要观察集群内正发生的事件,打开一个新终端,然后输入:
ceph -w
要检查集群的状态,执行下面的命令:
ceph status
或者:
ceph -s - 你可以执行下列命令来确定 OSD 状态为 up 且 in:
ceph osd stat
或者:
ceph osd dump
你也可以根据 OSD 在 CRUSH 图里的位置来查看:
ceph osd tree - 要查看监视器图,执行下面的命令:
ceph mon stat
或者:
ceph mon dump
要检查监视器的法定人数状态,执行下面的命令:
ceph quorum_status - 元数据服务器为 ceph 文件系统提供元数据服务,元数据服务器有两种状态:up|down 和 active|inactive,执
行下面的命令来确保元数据服务器 up 且 active:
ceph mds stat
要展示元数据集群的详细状态,执行下面的命令:
ceph mds dump - ceph 管理套接字允许你通过 socket 接口查询守护进程。它们默认存在于/var/run/ceph 下,用下列命令访问套
接字:
ceph --admin-daemon /var/run/ceph/{socket-name}
用下列命令查看可用的管理套接字命令:
ceph --admin-daemon /var/run/ceph/{socket-name} help - 用下列命令获取归置组列表:
ceph pg dump
要根据指定归置组号查看哪些 OSD 位于 Acting Set 或 Up Set 里,执行:
ceph pg map {pg-num} - 用下列命令获取归置组列表:
ceph pg dump
你也可以让它输出到 JSON 格式,并保存到文件:
ceph pg dump -o {filename} --format=json
要查询某个归置组,用下列命令:
ceph pg {poolnum}.{pg-id} query