OCP 创建备租户,提示`备份存储目录无法被主机 [xx.xx.xx.xxx] 访问`

【 使用环境 】生产环境
【 OB or 其他组件 】OCP
【 使用版本 】 4.3.3-20241219140415 CE
【问题描述】OBS 版本为4.3.4.1;OCP 创建备租户,提示备份存储目录无法被主机 [xx.xx.xx.xxx] 访问;通过 ob_admin io_adapter_benchmark 命令测试,该节点是可以访问S3存储路径的;

查看OCP 日志,看到拼接的S3 域为:accessDomainName=https://http://218.xx.xx.149:4000
截取部分日志如下(部分信息已做脱敏处理):

2025-03-08 10:12:30.201  INFO 33402 --- [http-nio-0.0.0.0-28880-exec-8,55b0420d79a79831,8a793e22d42ad94d] c.o.o.e.internal.template.HttpTemplate   : POST request to agent, url:http://183.xx.xx.105:62888/api/v1/backup/storage/test, request body:TestBackupStorageRequest(backupStorageType=s3, bucketName=oceanbase, objectName=backup, accessDomainName=https://http://218.xx.xx.149:4000, region=null, accessKeyId=66XM**qyn9), params:null
2025-03-08 10:12:30.283  WARN 33402 --- [http-nio-0.0.0.0-28880-exec-8,55b0420d79a79831,8a793e22d42ad94d] c.o.o.o.i.t.c.ObjectBackupStorageChecker : Failed to check oss visitable of host address:183.xx.xx.105

com.oceanbase.ocp.executor.exception.HttpRequestFailedException: [AgentClient]:http request is failed, response:check storage bucket failed, bucket: oceanbase, reason: operation error S3: HeadBucket, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head "https://http:/218.xx.xx.149:4000/oceanbase": dial tcp: lookup http on 114.114.114.114:53: no such host
        at com.oceanbase.ocp.executor.internal.template.HttpTemplate.checkSuccess(HttpTemplate.java:476)

麻烦各位大佬帮忙看一下
完整OCP日志如下(部分信息已做脱敏处理)
ocp-server.log_250308.tar.gz (8.7 MB)

1 个赞

勾选独立存储目录,自行填入S3域,日志不再报 no such host 错误,OCP页面仍提示备份存储目录无法被主机 [xx.xx.xx.xxx] 访问
日志中报错:Failed to check oss visitable of host address:183.xx.xx.105
截取部分日志如下:

2025-03-08 10:42:38.109  WARN 33402 --- [http-nio-0.0.0.0-28880-exec-8,cd2ff14bb2b45570,0ea278e81860a9ee] c.o.o.o.i.t.c.ObjectBackupStorageChecker : Failed to check oss visitable of host address:183.xx.xx.105

com.oceanbase.ocp.executor.exception.HttpRequestFailedException: [AgentClient]:http request is failed, response:check storage bucket failed, bucket: oceanbase, reason: operation error S3: HeadBucket, exceeded maximum number of attempts, 3, https response error StatusCode: 0, RequestID: , HostID: , request send failed, Head "https://218.xx.xx.149:4000/oceanbase": http: server gave HTTP response to HTTPS client

1 个赞

会不会权限方面有问题

2 个赞

OCP配置的备份存储路径是准确无误的;即使是小的拼写错误也可能导致访问失败

1 个赞

路径按理来说不会错误才对,是直接从租户的备份策略拷贝过来的

2 个赞

感觉权限方面的可能性不大
跟主租户的备份策略的路径、AK、SK 是一样的,下图是主租户的备份策略的存储配置


在预备建备租户的节点上测试也能连得上

1 个赞

看日志这个域名https://http:……有些奇怪,日志本来就是这样的吗?

另外在这个主机上ob_admin test_io_device测试正常吗?

是的,日志里面确实是有两个http://
该节点上 ob_admin test_io_device 测试正常

好的,我联系ocp老师分析下

1 个赞

有劳旭辉老师了

麻烦确认下183.xx.xx.xx.105 这台机器是ocp server的IP吗?还是备租户所在的IP?

是备租户所在的IP

另外确认下 ocp server 访问S3这个IP(域名)通吗?

刚刚测试 ocp server 所在节点可以正常访问 S3

目前确认这个OCP 433版本的一个已知问题,
两种方式解决:

  1. 升级OCP到 4.3.4

  2. 选择独立存储目录,把具体的主租户数据备份目录(/data)、归档目录(/clog) 填到输入框里,类似

勾选独立存储目录可以选择S3类型吗?
我这边测试也是无法访问

再次确认了下目前OCP创建备租户不支持 http 协议访问 S3/COS,仅支持https协议,本周预计发布 OCP 4.3.5 bp1,会增加对 http 协议的支持

感谢 旭辉 老师解答,我们这边通过黑屏命令恢复出了一个备租户
命令如下,希望能够帮助到有需要的朋友

# 省略前面创建资源池部分
ALTER SYSTEM RESTORE slave_sg FROM 's3://oceanbase/xxx/1002/data?host=http://218.xx.xx.149:4000&access_id=66XM*****n9&access_key=yLfZyf***UaK,s3://oceanbase/xxx/1002/clog?host=http://218.xx.xx.149:4000&access_id=66XM*****n9&access_key=yLfZyf***UaK' UNTIL TIME='2025-03-10 05:54:09.314667' WITH 'pool_list=pool_slave_sg';

#  恢复完成后执行recover 设置UNLIMITED
ALTER SYSTEM RECOVER STANDBY tenant = slave_sg UNTIL UNLIMITED;
1 个赞

黑屏的确可以,感谢分享