ceph 挂载失败,显示 (95) 操作不受支持
ceph mount failed with (95) Operation not supported
我在服务器 "A" 和 "B" 上安装了 ceph,我想从 "C" 或 "D" 服务器上安装它。
但我遇到了以下错误。
ceph-fuse[4628]: ceph mount failed with (95) Operation not supported
我的服务器配置如下
A Server: ubunt16.04(ceph-server) 10.1.1.54
B Server: ubuntu16.04(ceph-server) 10.1.1.138
C Server: AmazonLinux(clinet)
D Server: ubuntu16.04(client)
和ceph.conf
[global]
fsid = 44f299ac-ff11-41c8-ab96-225d62cb3226
mon_initial_members = node01, node02
mon_host = 10.1.1.54,10.1.1.138
auth cluster required = none
auth service required = none
auth client required = none
auth supported = none
osd pool default size = 2
public network = 10.1.1.0/24
Ceph 也安装正确。
ceph 健康
HEALTH_OK
ceph -s
cluster 44f299ac-ff11-41c8-ab96-225d62cb3226
health HEALTH_OK
monmap e1: 2 mons at {node01=10.1.1.54:6789/0,node02=10.1.1.138:6789/0}
election epoch 12, quorum 0,1 node01,node02
osdmap e41: 2 osds: 2 up, 2 in
flags sortbitwise,require_jewel_osds
pgmap v100: 64 pgs, 1 pools, 306 bytes data, 4 objects
69692 kB used, 30629 MB / 30697 MB avail
64 active+clean
使用ceph-fuse命令时出错。
sudo ceph-fuse -m 10.1.1.138:6789 /mnt/mycephfs/ --debug-auth=10 --debug-ms=10
ceph-fuse[4628]: starting ceph client
2017-11-02 08:57:22.905630 7f8cfdd60f00 -1 init, newargv = 0x55779de6af60 newargc=11
ceph-fuse[4628]: ceph mount failed with (95) Operation not supported
ceph-fuse[4626]: mount failed: (95) Operation not supported
我收到一条错误消息 "ceph mount failed with (95) Operation not supported"
我添加了一个选项“--auth-client-required=none”
sudo ceph-fuse -m 10.1.1.138:6789 /mnt/mycephfs/ --debug-auth=10 --debug-ms=10 --auth-client-required=none
ceph-fuse[4649]: starting ceph client
2017-11-02 09:03:47.501363 7f1239858f00 -1 init, newargv = 0x5597621eaf60 newargc=11
行为发生变化,此处无响应。
如果不使用 ceph-fuse 命令,我会得到以下错误。
sudo mount -t ceph 10.1.1.138:6789:/ /mnt/mycephfs
can't read superblock
不知何故,即使使用"auth supported = none"
,似乎也需要与客户端进行身份验证
那样的话,你怎么能通过服务器"c"或"d"的认证呢?
请让我知道,如果除了身份验证之外还有其他可能的原因。
我认为您需要更多步骤,例如格式化文件系统,所以
你应该根据你的目的再次检查你的安装步骤,Ceph 的每个服务都有多个组件,例如对象存储、块存储、文件系统和 API。每个服务都需要其配置步骤。
此安装指南对您的案例有所帮助。
如果要构建Ceph 文件系统进行测试,可以按照以下安装步骤构建小型CephFS。
具体的步骤和CLI的使用我就略过了,大家可以去官方文档了解更多。
环境信息
- Ceph 版本:Jewel,10.2.9
- OS: 美分OS 7.4
安装 Ceph 文件系统之前的先决条件。
此配置需要 4 个节点,
- ceph-admin 节点:部署监视器、元数据服务器
- ceph-osd0:osd 服务
- ceph-osd1:osd 服务
- ceph-osd2:osd 服务
启用 NTP - 所有节点
- 用于部署 ceph 组件的 OS 用户需要升级权限设置(例如 sudoers)
- SSH public密钥配置(方向:ceph-admin -> OSD节点)
在 ceph-admin 管理节点上安装 ceph-deploy 工具。
# yum install -y ceph-deploy
为 Ceph 文件系统部署所需的 Ceph 组件
使用普通 OS 用户在 ceph-admin 管理节点上创建集群(用于部署 ceph 组件)
$ mkdir ./cluster
$ cd ./cluster
$ ceph-deploy new ceph-admin
修改ceph.conf进入集群目录
$ vim ceph.conf
[global]
..snip...
mon_initial_members = ceph-admin
mon_host = $MONITORSERVER_IP_OR_HOSTNAME
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
# the number of replicas for objects in the pool, default value is 3
osd pool default size = 3
public network = $YOUR_SERVICE_NETWORK_CIDR
正在为相关节点安装监视器和 osd 服务。
$ ceph-deploy install --release jewel ceph-admin ceph-osd0 ceph-osd1 ceph-osd2
启动监控服务
$ ceph-deploy mon create-initial
创建 OSD 设备
ceph-deploy osd list ceph-osd{0..2}:vdb
为 Ceph 文件系统服务添加元数据服务器组件。
添加元数据服务器(此服务只需要 Ceph 文件系统)
ceph-deploy mds create ceph-admin
查看状态
ceph mds stat
为 cephFS 创建池
ceph osd pool create cephfs_data_pool 64
ceph osd pool create cephfs_meta_pool 64
创建 ceph 文件系统
ceph fs new cephfs cephfs_meta_pool cephfs_data_pool
挂载 Ceph 文件系统
挂载节点需要ceph-fuse包。
挂载为 cephFS
ceph-fuse -m MONITOR_SERVER_IP_OR_HOSTNAME:PORT_NUMBER <LOCAL_MOUNTPOINT>
结束...
我通过修改三个设置解决了这个问题。
1.
ceph.conf中的授权设置返回如下
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
2.
public网络错误
public network = 10.1.1.0/24
↓
public network = 10.0.0.0/8
我的客户端 IP 地址是 10.1.0.238...
这是一个愚蠢的错误。
3.
我将 secret 选项更改为 secretfile 选项,一切正常。
在这种情况下,失败了。
sudo mount -t ceph 10.1.1.138:6789:/ /mnt/mycephfs -o name=client.admin,secret=`sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring`
输出:
mount error 1 = Operation not permitted
但在这种情况下,它是成功的。
sudo mount -vvvv -t ceph 10.1.1.138:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret
输出:
parsing options: rw,name=admin,secretfile=admin.secret
mount: error writing /etc/mtab: Invalid argument
※ Invalid argument 错误似乎被忽略了。
显然,两者是同一个密钥。
sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring
AQBd9f9ZSL46MBAAqwepJDC5tuIL/uYp0MXjCA==
cat admin.secret
AQBd9f9ZSL46MBAAqwepJDC5tuIL/uYp0MXjCA==
我不知道为什么,但我可以使用 secretfile 选项挂载。
我在服务器 "A" 和 "B" 上安装了 ceph,我想从 "C" 或 "D" 服务器上安装它。
但我遇到了以下错误。
ceph-fuse[4628]: ceph mount failed with (95) Operation not supported
我的服务器配置如下
A Server: ubunt16.04(ceph-server) 10.1.1.54
B Server: ubuntu16.04(ceph-server) 10.1.1.138
C Server: AmazonLinux(clinet)
D Server: ubuntu16.04(client)
和ceph.conf
[global]
fsid = 44f299ac-ff11-41c8-ab96-225d62cb3226
mon_initial_members = node01, node02
mon_host = 10.1.1.54,10.1.1.138
auth cluster required = none
auth service required = none
auth client required = none
auth supported = none
osd pool default size = 2
public network = 10.1.1.0/24
Ceph 也安装正确。
ceph 健康
HEALTH_OK
ceph -s
cluster 44f299ac-ff11-41c8-ab96-225d62cb3226
health HEALTH_OK
monmap e1: 2 mons at {node01=10.1.1.54:6789/0,node02=10.1.1.138:6789/0}
election epoch 12, quorum 0,1 node01,node02
osdmap e41: 2 osds: 2 up, 2 in
flags sortbitwise,require_jewel_osds
pgmap v100: 64 pgs, 1 pools, 306 bytes data, 4 objects
69692 kB used, 30629 MB / 30697 MB avail
64 active+clean
使用ceph-fuse命令时出错。
sudo ceph-fuse -m 10.1.1.138:6789 /mnt/mycephfs/ --debug-auth=10 --debug-ms=10
ceph-fuse[4628]: starting ceph client
2017-11-02 08:57:22.905630 7f8cfdd60f00 -1 init, newargv = 0x55779de6af60 newargc=11
ceph-fuse[4628]: ceph mount failed with (95) Operation not supported
ceph-fuse[4626]: mount failed: (95) Operation not supported
我收到一条错误消息 "ceph mount failed with (95) Operation not supported"
我添加了一个选项“--auth-client-required=none”
sudo ceph-fuse -m 10.1.1.138:6789 /mnt/mycephfs/ --debug-auth=10 --debug-ms=10 --auth-client-required=none
ceph-fuse[4649]: starting ceph client
2017-11-02 09:03:47.501363 7f1239858f00 -1 init, newargv = 0x5597621eaf60 newargc=11
行为发生变化,此处无响应。
如果不使用 ceph-fuse 命令,我会得到以下错误。
sudo mount -t ceph 10.1.1.138:6789:/ /mnt/mycephfs
can't read superblock
不知何故,即使使用"auth supported = none"
,似乎也需要与客户端进行身份验证那样的话,你怎么能通过服务器"c"或"d"的认证呢?
请让我知道,如果除了身份验证之外还有其他可能的原因。
我认为您需要更多步骤,例如格式化文件系统,所以 你应该根据你的目的再次检查你的安装步骤,Ceph 的每个服务都有多个组件,例如对象存储、块存储、文件系统和 API。每个服务都需要其配置步骤。
此安装指南对您的案例有所帮助。
如果要构建Ceph 文件系统进行测试,可以按照以下安装步骤构建小型CephFS。 具体的步骤和CLI的使用我就略过了,大家可以去官方文档了解更多。
环境信息
- Ceph 版本:Jewel,10.2.9
- OS: 美分OS 7.4
安装 Ceph 文件系统之前的先决条件。
此配置需要 4 个节点,
- ceph-admin 节点:部署监视器、元数据服务器
- ceph-osd0:osd 服务
- ceph-osd1:osd 服务
- ceph-osd2:osd 服务
启用 NTP - 所有节点
- 用于部署 ceph 组件的 OS 用户需要升级权限设置(例如 sudoers)
- SSH public密钥配置(方向:ceph-admin -> OSD节点)
在 ceph-admin 管理节点上安装 ceph-deploy 工具。
# yum install -y ceph-deploy
为 Ceph 文件系统部署所需的 Ceph 组件
使用普通 OS 用户在 ceph-admin 管理节点上创建集群(用于部署 ceph 组件)
$ mkdir ./cluster
$ cd ./cluster
$ ceph-deploy new ceph-admin
修改ceph.conf进入集群目录
$ vim ceph.conf
[global]
..snip...
mon_initial_members = ceph-admin
mon_host = $MONITORSERVER_IP_OR_HOSTNAME
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
# the number of replicas for objects in the pool, default value is 3
osd pool default size = 3
public network = $YOUR_SERVICE_NETWORK_CIDR
正在为相关节点安装监视器和 osd 服务。
$ ceph-deploy install --release jewel ceph-admin ceph-osd0 ceph-osd1 ceph-osd2
启动监控服务
$ ceph-deploy mon create-initial
创建 OSD 设备
ceph-deploy osd list ceph-osd{0..2}:vdb
为 Ceph 文件系统服务添加元数据服务器组件。
添加元数据服务器(此服务只需要 Ceph 文件系统)
ceph-deploy mds create ceph-admin
查看状态
ceph mds stat
为 cephFS 创建池
ceph osd pool create cephfs_data_pool 64
ceph osd pool create cephfs_meta_pool 64
创建 ceph 文件系统
ceph fs new cephfs cephfs_meta_pool cephfs_data_pool
挂载 Ceph 文件系统
挂载节点需要ceph-fuse包。
挂载为 cephFS
ceph-fuse -m MONITOR_SERVER_IP_OR_HOSTNAME:PORT_NUMBER <LOCAL_MOUNTPOINT>
结束...
我通过修改三个设置解决了这个问题。
1.
ceph.conf中的授权设置返回如下
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
2.
public网络错误
public network = 10.1.1.0/24
↓
public network = 10.0.0.0/8
我的客户端 IP 地址是 10.1.0.238... 这是一个愚蠢的错误。
3.
我将 secret 选项更改为 secretfile 选项,一切正常。
在这种情况下,失败了。
sudo mount -t ceph 10.1.1.138:6789:/ /mnt/mycephfs -o name=client.admin,secret=`sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring`
输出:
mount error 1 = Operation not permitted
但在这种情况下,它是成功的。
sudo mount -vvvv -t ceph 10.1.1.138:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret
输出:
parsing options: rw,name=admin,secretfile=admin.secret
mount: error writing /etc/mtab: Invalid argument
※ Invalid argument 错误似乎被忽略了。
显然,两者是同一个密钥。
sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring
AQBd9f9ZSL46MBAAqwepJDC5tuIL/uYp0MXjCA==
cat admin.secret
AQBd9f9ZSL46MBAAqwepJDC5tuIL/uYp0MXjCA==
我不知道为什么,但我可以使用 secretfile 选项挂载。