docs(docs): Add 7 FAQ cases.

Signed-off-by: aaronwu2010 <huochengwu@qq.com>
This commit is contained in:
aaronwu2010 2025-06-25 15:32:47 +08:00 committed by leonrayang
parent 2e4c46a4fb
commit 310badc752
2 changed files with 103 additions and 2 deletions

View File

@ -268,4 +268,54 @@ _描述_多AZ场景下 metanode的nodeSet组是可以跨zone的对么
## 问题45
_描述_metanode的nodeset代码里也是在zone级别的multi-raft为防止心跳风暴限制在nodeset级别的跨zone的volume metanode选择机制又是各个zone里选一些机器放。跨分层存储池的功能有验证过没啥问题
**回答**:目前支持的。
**回答**:目前支持的。
## 问题46
_描述_部分docker容器启动挂载cubefs客户端的时候只有下面的错误没有别的错误信息
```bash
2025/06/04 02:20:23 maxprocs: Leaving GOMAXPROCS=48: CPU quota undefined
Mount failed: startDaemon failed: daemon start failed, ... err(readFromProcess: sub-process: [fuse.go 528] mount failed: fusermount: exit status 1)
```
**回答**这个是因为没有root权限没有/dev/fuse设备。解决方法启动容器时添加参数--privileged
**备注**另外的容器启动时如果遇到类似的问题可以在客户端的output.log日志里面看到相应的错误
```bash
2025/06/04 14:49:12 mount helper error: fusermount: fuse device not found, try 'modprobe fuse' first
2025/06/04 14:49:12 [fuse.go 529] mount failed: fusermount: exit status 1
```
同样的报错也可能是使用fuse的权限不足这个在output.log里面会有提示。添加sudo可以解决这类问题。
总的来说这类问题都是因为不能正常使用fuse功能导致报错exit status 1
## 问题47
_描述_客户端的日志报错误ResultCode(136)的错误。
**回答**OpWriteOpOfProtoVerForbidden 编码值是136。在客户端和服务端的协议版本不匹配的情况下可能出现这个问题。
解决方法:升级客户端,使用新的版本协议。
## 问题48
_描述_cubefs在系统重启以后objectnode启动失败报错access client service discovery disconnect.
因为这个过程中格式化过datanode挂载的磁盘导致access的日志报 0 available total available space 0
**回答**重启一下datanode格式化的磁盘会重新注册。
## 问题49
_描述_副本模式和纠删码模式是两套完全不同的部署方式吗如果使用纠删码模式是否依赖副本模式的相关服务。
**回答**是不同的两套方式。两者都使用metanode做元数据服务但是没有相互依赖。
## 问题50
_描述_三副本模式下集群的可用容量=集群总容量/副本数,对吗?
**回答**三副本的可用容量的确是总容量的三分之一。如果上面的集群总容量就是datanode可用的总容量那就是对的。
## 问题51
_描述_我有三台机器每台机器只有一块SSD数据盘怎么使用纠删码模式cubefs支持的纠删码中磁盘需求数量最少的是EC3P3该如何搭建
**回答**把每个SSD盘分成两个分区单机就有两块盘。3台机器就可以使用EC3P3。
## 问题52
_描述_我make的时候提示golang版本需要1.17但是我的golang版本是1.13。该如何处理?
**回答**到官网上面下载1.17.13版本然后升级golang版本。

View File

@ -259,4 +259,55 @@ _Description_Can nodeSet groups of metanode cross zones in multi-AZ scenario?
## Question 45
_Description_The metanode's nodeset is also at the zone level, multi-raft restricts it to the nodeset level to prevent heartbeat storm, and the cross-zone volume metanode selection mechanism selects some machines in each zone to put. Is there any problem with this cross zone storage pool functionality?
**Answer**Currently supported.
**Answer**Currently supported.
## Question 46
_Description_When some Docker containers start and mount the CubeFS client, only the following error appears, with no other error messages:
```bash
2025/06/04 02:20:23 maxprocs: Leaving GOMAXPROCS=48: CPU quota undefined
Mount failed: startDaemon failed: daemon start failed, ... err(readFromProcess: sub-process: [fuse.go 528] mount failed: fusermount: exit status 1)
```
**Answer**This issue occurs due to the lack of root permissions and the absence of the /dev/fuse device. The solution is to add the --privileged parameter when starting the container.
**Notice**If other containers encounter similar issues during startup, the corresponding errors can be found in the client's output.log file.
```bash
2025/06/04 14:49:12 mount helper error: fusermount: fuse device not found, try 'modprobe fuse' first
2025/06/04 14:49:12 [fuse.go 529] mount failed: fusermount: exit status 1
```
The same error may also occur due to insufficient permissions for using FUSE, which will be indicated in the output.log file. Adding sudo can resolve this type of issue.
In summary, these problems are caused by the inability to use FUSE functionality properly, resulting in the error: exit status 1.
## Question 47
_Description_The client's log reports an error: ResultCode(136).
**Answer**OpWriteOpOfProtoVerForbidden (code 136). This issue may occur when the protocol versions of the client and server do not match.
Solution: Upgrade the client to use the newer protocol version.
## Question 48
_Description_After the system reboot, CubeFS's ObjectNode failed to start with the error: access client service discovery disconnect.
This occurred because the disk mounted by the DataNode was formatted during the process, causing the access logs to report: 0 available, total available space 0.
**Answer**Restart the DataNode, and the formatted disk will be re-registered.
## Question 49
_Description_Are replica mode and erasure coding mode two completely different deployment methods? If using erasure coding mode, does it depend on services related to replica mode?
**Answer**Replica mode and erasure coding mode are two distinct deployment methods in CubeFS. Both use MetaNode for metadata services, but they do not depend on each other.
## Question 50
_Description_In a three-replica mode, is the available cluster capacity equal to the total cluster capacity divided by the replica count?
**Answer**The available capacity with three replicas is indeed one-third of the total capacity. If the total cluster capacity mentioned above refers to the usable capacity of the DataNodes, then this is correct.
## Question 51
_Description_I have three machines, each with only one SSD data disk. How can I use the erasure coding mode? Among the erasure coding options supported by CubeFS, the one with the minimum disk requirement is EC3P3. How can I set it up?
**Answer**To use the EC3P3 erasure coding mode in CubeFS with three machines, each having only one SSD, you can partition each SSD into two logical disks. This way, each machine will effectively have two "disks," meeting the minimum requirement for EC3P3 (3 data nodes with 2 disks each).
## Question 52
_Description_When running make, it prompts that Golang version 1.17 is required, but my current Golang version is 1.13. How should I handle this?
**Answer**
To resolve the Golang version issue, follow these steps:
Download Golang 1.17.13 from the official website. Install the new version by replacing your current Golang installation. Retry the make command after ensuring the correct version is active.