命令行工具
Curve 命令行工具代码仓库地址:https://github.com/opencurve/curve/blob/master/tools-v2/README.md
工具目前还在继续开发完善之中,欢迎提交issue或pr。
- curve tool usage
How to use curve tool
Install
install curve tool
wget https://curve-tool.nos-eastchina1.126.net/release/curve-latest
chmod +x curve-latest
mv curve-latest /usr/bin/curve
set configure file
wget https://raw.githubusercontent.com/opencurve/curve/master/tools-v2/pkg/config/curve.yaml
or
wget https://curve-tool.nos-eastchina1.126.net/config/curve.yaml
Please modify the mdsAddr, mdsDummyAddr, etcdAddr under curvefs/bs in the template.yaml file as required
mv curve.yaml ~/.curve/curve.yaml
or
mv curve.yaml /etc/curve/curve.yaml
Introduction
Here's how to use the tool
curve COMMAND [options]
When you are not sure how to use a command, --help can give you an example of use:
curve COMMAND --help
For example:
curve fs status mds --help
Usage:  curve fs status mds [flags]
get the inode usage of curvefs
Flags:
  -c, --conf string            config file (default is $HOME/.curve/curve.yaml or /etc/curve/curve.yaml)
  -f, --format string          Output format (json|plain) (default "plain")
  -h, --help                   Print usage
      --httptimeout duration   http timeout (default 500ms)
      --mdsaddr string         mds address, should be like 127.0.0.1:6700,127.0.0.1:6701,127.0.0.1:6702
      --mdsdummyaddr string    mds dummy address, should be like 127.0.0.1:7700,127.0.0.1:7701,127.0.0.1:7702
      --showerror              display all errors in command
Examples:
$ curve fs status mds
In addition, this tool reads the configuration from $HOME/.curve/curve.yaml or /etc/curve/curve.yaml by default,
and can be specified by --conf or -c.
Command
version
show the version of curve tool
Usage:
curve --version
Output:
curve v1.2
completion
generate curve bash/zsh/fish completion script
Take bash as an example:
curve completion bash > /etc/bash_completion.d/curve
If you perform completion you get the following error:
curve [tab]bash: _get_comp_words_by_ref: command not found
You need to install bash-completion:
sudo apt install bash-completion
source /usr/share/bash-completion/bash_completion
upgrade
Upgrade curve to latest version
Usage:
curve upgrade
If you want to upgrade to the specified version(ee500438):
CURVE_VERSION=ee500438 curve upgrade
If you are in an offline environment, you can also set up a temporary http server to provide upgrade services for other machines:
# 192.168.1.1
echo "123456" > __version
cp curve curve-123456
python3 -m http.server 1234
In this way, it can be upgraded on other machines
CURVE_BASE_URL=http://192.168.1.1:1234/ curve upgrade
fs
check
check copyset
check copysets health in curvefs
Usage:
curve fs check copyset --copysetid 1 --poolid 1
Output:
+------------+-----------+--------+--------+---------+
| COPYSETKEY | COPYSETID | POOLID | STATUS | EXPLAIN |
+------------+-----------+--------+--------+---------+
| 4294967297 |         1 |      1 | ok     |         |
+------------+-----------+--------+--------+---------+
create
create fs
create a fs in curvefs
Usage:
curve fs create fs --fsname test3
Output:
+--------+-------------------------------------------+
| FSNAME |                  RESULT                   |
+--------+-------------------------------------------+
| test3  | fs exist, but s3 info is not inconsistent |
+--------+-------------------------------------------+
create topology
create curvefs topology
Usage:
curve fs create topology --clustermap topology.json
Output:
+-------------------+--------+-----------+--------+
|       NAME        |  TYPE  | OPERATION | PARENT |
+-------------------+--------+-----------+--------+
| pool2             | pool   | del       |        |
+-------------------+--------+           +--------+
| zone4             | zone   |           | pool2  |
+-------------------+--------+           +--------+
| **.***.***.**_3_0 | server |           | zone4  |
+-------------------+--------+-----------+--------+
delete
delete fs
delete a fs from curvefs
Usage:
curve fs delete fs --fsname test1
WARNING:Are you sure to delete fs test1?
please input [test1] to confirm: test1
Output:
+--------+-------------------------------------+
| FSNAME |               RESULT                |
+--------+-------------------------------------+
| test1  | delete fs failed!, error is FS_BUSY |
+--------+-------------------------------------+
list
list copyset
list all copyset info of the curvefs
Usage:
curve fs list copyset
Output:
+------------+-----------+--------+-------+--------------------------------+------------+
|    KEY     | COPYSETID | POOLID | EPOCH |           LEADERPEER           | PEERNUMBER |
+------------+-----------+--------+-------+--------------------------------+------------+
| 4294967302 | 6         | 1      | 2     | id:1                           | 3          |
|            |           |        |       | address:"**.***.***.**:6801:0" |            |
+------------+-----------+        +-------+                                +------------+
| 4294967303 | 7         |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+                                +------------+
| 4294967304 | 8         |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+                                +------------+
| 4294967307 | 11        |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+--------------------------------+------------+
| 4294967297 | 1         |        | 1     | id:2                           | 3          |
|            |           |        |       | address:"**.***.***.**:6802:0" |            |
+------------+-----------+        +-------+                                +------------+
| 4294967301 | 5         |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+                                +------------+
| 4294967308 | 12        |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+--------------------------------+------------+
| 4294967298 | 2         |        | 1     | id:3                           | 3          |
|            |           |        |       | address:"**.***.***.**:6800:0" |            |
+------------+-----------+        +-------+                                +------------+
| 4294967299 | 3         |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+                                +------------+
| 4294967300 | 4         |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+                                +------------+
| 4294967305 | 9         |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+        +-------+                                +------------+
| 4294967306 | 10        |        | 1     |                                | 3          |
|            |           |        |       |                                |            |
+------------+-----------+--------+-------+--------------------------------+------------+
list fs
list all fs info in the curvefs
Usage:
curve fs list fs
Output:
+----+-------+--------+--------------+-----------+---------+----------+-----------+----------+
| ID | NAME  | STATUS |   CAPACITY   | BLOCKSIZE | FSTYPE  | SUMINDIR |   OWNER   | MOUNTNUM |
+----+-------+--------+--------------+-----------+---------+----------+-----------+----------+
| 2  | test1 | INITED | 107374182400 | 1048576   | TYPE_S3 | false    | anonymous | 1        |
+----+-------+--------+--------------+-----------+         +----------+           +----------+
| 3  | test3 | INITED | 107374182400 | 1048576   |         | false    |           | 0        |
+----+-------+--------+--------------+-----------+---------+----------+-----------+----------+
list mountpoint
list all mountpoint of the curvefs
Usage:
curve fs list mountpoint
Output:
+------+--------+-------------------------------------------------------------------+
| FSID | FSNAME |                            MOUNTPOINT                             |
+------+--------+-------------------------------------------------------------------+
| 2    | test1  | siku-QiTianM420-N000:9002:/curvefs/client/mnt/home/siku/temp/mnt1 |
+      +        +-------------------------------------------------------------------+
|      |        | siku-QiTianM420-N000:9003:/curvefs/client/mnt/home/siku/temp/mnt2 |
+------+--------+-------------------------------------------------------------------+
list partition
list partition in curvefs by fsid
Usage:
curve fs list partition
Output:
+-------------+------+--------+-----------+----------+----------+-----------+
| PARTITIONID | FSID | POOLID | COPYSETID |  START   |   END    |  STATUS   |
+-------------+------+--------+-----------+----------+----------+-----------+
| 14          | 2    | 1      | 10        | 1048676  | 2097351  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 20          |      |        |           | 7340732  | 8389407  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 13          |      |        | 11        | 0        | 1048675  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 16          |      |        |           | 3146028  | 4194703  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 22          |      |        |           | 9438084  | 10486759 | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 21          |      |        | 5         | 8389408  | 9438083  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 23          |      |        | 7         | 10486760 | 11535435 | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 24          |      |        |           | 11535436 | 12584111 | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 15          |      |        | 8         | 2097352  | 3146027  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 18          |      |        |           | 5243380  | 6292055  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 17          |      |        | 9         | 4194704  | 5243379  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 19          |      |        |           | 6292056  | 7340731  | READWRITE |
+-------------+------+        +-----------+----------+----------+-----------+
| 26          | 3    |        | 2         | 1048676  | 2097351  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 30          |      |        |           | 5243380  | 6292055  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 34          |      |        | 3         | 9438084  | 10486759 | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 29          |      |        | 4         | 4194704  | 5243379  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 32          |      |        |           | 7340732  | 8389407  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 35          |      |        | 5         | 10486760 | 11535435 | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 27          |      |        |           | 2097352  | 3146027  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 33          |      |        |           | 8389408  | 9438083  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 25          |      |        | 6         | 0        | 1048675  | READWRITE |
+-------------+      +        +           +----------+----------+-----------+
| 36          |      |        |           | 11535436 | 12584111 | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 28          |      |        | 8         | 3146028  | 4194703  | READWRITE |
+-------------+      +        +-----------+----------+----------+-----------+
| 31          |      |        | 9         | 6292056  | 7340731  | READWRITE |
+-------------+------+--------+-----------+----------+----------+-----------+
list topology
list the topology of the curvefs
Usage:
curve fs list topology
Output:
+----+------------+--------------------+------------+-----------------------+
| ID |    TYPE    |        NAME        | CHILDTYPE  |       CHILDLIST       |
+----+------------+--------------------+------------+-----------------------+
| 1  | pool       | pool1              | zone       | zone3 zone2 zone1     |
+----+------------+--------------------+------------+-----------------------+
| 3  | zone       | zone3              | server     | **.***.***.**_2_0     |
+----+            +--------------------+            +-----------------------+
| 2  |            | zone2              |            | **.***.***.**_1_0     |
+----+            +--------------------+            +-----------------------+
| 1  |            | zone1              |            | **.***.***.**_0_0     |
+----+------------+--------------------+------------+-----------------------+
| 3  | server     | **.***.***.**_2_0  | metaserver | curvefs-metaserver.2  |
+----+            +--------------------+            +-----------------------+
| 2  |            | **.***.***.**_1_0  |            | curvefs-metaserver.1  |
+----+            +--------------------+            +-----------------------+
| 1  |            | **.***.***.**_0_0  |            | curvefs-metaserver.3  |
+----+------------+--------------------+------------+-----------------------+
| 3  | metaserver | curvefs-metaserver |            |                       |
+----+            +--------------------+------------+-----------------------+
| 2  |            | curvefs-metaserver |            |                       |
+----+            +--------------------+------------+-----------------------+
| 1  |            | curvefs-metaserver |            |                       |
+----+------------+--------------------+------------+-----------------------+
query
query copyset
query copysets in curvefs
Usage:
curve fs query copyset --copysetid 1 --poolid 1
Output:
+------------+-----------+--------+--------------------------------------+-------+
| copysetKey | copysetId | poolId |              leaderPeer              | epoch |
+------------+-----------+--------+--------------------------------------+-------+
| 4294967297 |     1     |   1    | id:2  address:"**.***.***.**:6802:0" |   1   |
+------------+-----------+--------+--------------------------------------+-------+
query fs
query fs in curvefs by fsname or fsid
Usage:
curve fs query fs --fsname test1
Output:
+----+-------+--------+--------------+-----------+---------+----------+-----------+----------+
| id | name  | status |   capacity   | blocksize | fsType  | sumInDir |   owner   | mountNum |
+----+-------+--------+--------------+-----------+---------+----------+-----------+----------+
| 2  | test1 | INITED | 107374182400 |  1048576  | TYPE_S3 |  false   | anonymous |    2     |
+----+-------+--------+--------------+-----------+---------+----------+-----------+----------+
query inode
query the inode of fs
Usage:
curve fs query inode --fsid 2 --inodeid 5243380
Output:
+-------+----------+-----------+---------+-------+--------+
| fs id | inode id |  length   |  type   | nlink | parent |
+-------+----------+-----------+---------+-------+--------+
|   2   | 5243380  | 352321536 | TYPE_S3 |   1   |  [1]   |
+-------+----------+-----------+---------+-------+--------+
query metaserver
query metaserver in curvefs by metaserverid or metaserveraddr
Usage:
curve fs query metaserver --metaserveraddr **.***.***.**:6801,**.***.***.**:6802
Output:
+----+--------------------+--------------------+--------------------+-------------+
| id |      hostname      |    internalAddr    |    externalAddr    | onlineState |
+----+--------------------+--------------------+--------------------+-------------+
| 1  | curvefs-metaserver | **.***.***.**:6801 | **.***.***.**:6801 |   ONLINE    |
| 2  | curvefs-metaserver | **.***.***.**:6802 | **.***.***.**:6802 |   ONLINE    |
+----+--------------------+--------------------+--------------------+-------------+
query partition
query the copyset of partition
Usage:
curve fs query partition --partitionid 14
Output:
+----+--------+-----------+--------+----------------------+
| id | poolId | copysetId | peerId |       peerAddr       |
+----+--------+-----------+--------+----------------------+
| 14 |   1    |    10     |   1    | **.***.***.**:6801:0 |
| 14 |   1    |    10     |   2    | **.***.***.**:6802:0 |
| 14 |   1    |    10     |   3    | **.***.***.**:6800:0 |
+----+--------+-----------+--------+----------------------+
status
status mds
get status of mds
Usage:
curve fs status mds
Output:
+--------------------+--------------------+----------------+----------+
|        addr        |     dummyAddr      |    version     |  status  |
+--------------------+--------------------+----------------+----------+
| **.***.***.**:6700 | **.***.***.**:7700 | 8fc48476+debug | follower |
| **.***.***.**:6701 | **.***.***.**:7701 | 8fc48476+debug | follower |
| **.***.***.**:6702 | **.***.***.**:7702 | 8fc48476+debug |  leader  |
+--------------------+--------------------+----------------+----------+
status metaserver
get status of metaserver
Usage:
curve fs status metaserver
Output:
+--------------------+--------------------+----------------+--------+
|    externalAddr    |    internalAddr    |    version     | status |
+--------------------+--------------------+----------------+--------+
| **.***.***.**:6800 | **.***.***.**:6800 | 8fc48476+debug | online |
| **.***.***.**:6802 | **.***.***.**:6802 | 8fc48476+debug | online |
| **.***.***.**:6801 | **.***.***.**:6801 | 8fc48476+debug | online |
+--------------------+--------------------+----------------+--------+
status etcd
get status of etcd
Usage:
curve fs status etcd
Output:
+---------------------+---------+----------+
|        addr         | version |  status  |
+---------------------+---------+----------+
| **.***.***.**:23790 | 3.4.10  | follower |
| **.***.***.**:23791 | 3.4.10  | follower |
| **.***.***.**:23792 | 3.4.10  |  leader  |
+---------------------+---------+----------+
status copyset
get status of copyset
Usage:
curve fs status copyset
Output:
+------------+-----------+--------+--------+---------+
| copysetKey | copysetId | poolId | status | explain |
+------------+-----------+--------+--------+---------+
| 4294967297 |     1     |   1    |   ok   |         |
| 4294967298 |     2     |   1    |   ok   |         |
| 4294967299 |     3     |   1    |   ok   |         |
| 4294967300 |     4     |   1    |   ok   |         |
| 4294967301 |     5     |   1    |   ok   |         |
| 4294967302 |     6     |   1    |   ok   |         |
| 4294967303 |     7     |   1    |   ok   |         |
| 4294967304 |     8     |   1    |   ok   |         |
| 4294967305 |     9     |   1    |   ok   |         |
| 4294967306 |    10     |   1    |   ok   |         |
| 4294967307 |    11     |   1    |   ok   |         |
| 4294967308 |    12     |   1    |   ok   |         |
+------------+-----------+--------+--------+---------+
status cluster
get status of cluster
Usage:
curve fs status cluster
Output:
etcd:
+---------------------+---------+----------+
|        addr         | version |  status  |
+---------------------+---------+----------+
| **.***.***.**:23790 | 3.4.10  | follower |
| **.***.***.**:23791 | 3.4.10  | follower |
| **.***.***.**:23792 | 3.4.10  |  leader  |
+---------------------+---------+----------+
mds:
+--------------------+--------------------+----------------+----------+
|        addr        |     dummyAddr      |    version     |  status  |
+--------------------+--------------------+----------------+----------+
| **.***.***.**:6700 | **.***.***.**:7700 | 8fc48476+debug | follower |
| **.***.***.**:6701 | **.***.***.**:7701 | 8fc48476+debug | follower |
| **.***.***.**:6702 | **.***.***.**:7702 | 8fc48476+debug |  leader  |
+--------------------+--------------------+----------------+----------+
meataserver:
+--------------------+--------------------+----------------+--------+
|    externalAddr    |    internalAddr    |    version     | status |
+--------------------+--------------------+----------------+--------+
| **.***.***.**:6800 | **.***.***.**:6800 | 8fc48476+debug | online |
| **.***.***.**:6802 | **.***.***.**:6802 | 8fc48476+debug | online |
| **.***.***.**:6801 | **.***.***.**:6801 | 8fc48476+debug | online |
+--------------------+--------------------+----------------+--------+
copyset:
+------------+-----------+--------+--------+---------+
| copysetKey | copysetId | poolId | status | explain |
+------------+-----------+--------+--------+---------+
| 4294967297 |     1     |   1    |   ok   |         |
| 4294967298 |     2     |   1    |   ok   |         |
| 4294967299 |     3     |   1    |   ok   |         |
| 4294967300 |     4     |   1    |   ok   |         |
| 4294967301 |     5     |   1    |   ok   |         |
| 4294967302 |     6     |   1    |   ok   |         |
| 4294967303 |     7     |   1    |   ok   |         |
| 4294967304 |     8     |   1    |   ok   |         |
| 4294967305 |     9     |   1    |   ok   |         |
| 4294967306 |    10     |   1    |   ok   |         |
| 4294967307 |    11     |   1    |   ok   |         |
| 4294967308 |    12     |   1    |   ok   |         |
+------------+-----------+--------+--------+---------+
Cluster health is:  ok
umount
umount fs
umount fs from the curvefs cluster
Usage:
curve fs umount fs --fsname test1 --mountpoint siku-QiTianM420-N000:9002:/curvefs/client/mnt/home/siku/temp/mnt1
Output:
+--------+-------------------------------------------------------------------+---------+
| fsName |                            mountpoint                             | result  |
+--------+-------------------------------------------------------------------+---------+
| test1  | siku-QiTianM420-N000:9003:/curvefs/client/mnt/home/siku/temp/mnt2 | success |
+--------+-------------------------------------------------------------------+---------+
usage
usage inode
get the inode usage of curvefs
Usage:
curve fs usage inode
Output:
+------+----------------+-----+
| fsId |     fsType     | num |
+------+----------------+-----+
|  2   |   inode_num    |  3  |
|  2   | type_directory |  1  |
|  2   |   type_file    |  0  |
|  2   |    type_s3     |  2  |
|  2   | type_sym_link  |  0  |
|  3   |   inode_num    |  1  |
|  3   | type_directory |  1  |
|  3   |   type_file    |  0  |
|  3   |    type_s3     |  0  |
|  3   | type_sym_link  |  0  |
+------+----------------+-----+
usage metadata
get the usage of metadata in curvefs
Usage:
curve fs usage metadata
Output:
+--------------------+---------+---------+---------+
|   metaserverAddr   |  total  |  used   |  left   |
+--------------------+---------+---------+---------+
| **.***.***.**:6800 | 2.0 TiB | 182 GiB | 1.8 TiB |
| **.***.***.**:6802 | 2.0 TiB | 182 GiB | 1.8 TiB |
| **.***.***.**:6801 | 2.0 TiB | 182 GiB | 1.8 TiB |
+--------------------+---------+---------+---------+
warmup
warmup add
warmup a file(directory), or given a list file contains a list of files(directories) that you want to warmup.
Usage:
curve fs warmup add /mnt/curvefs/warmup
curve fs warmup add --filelist /mnt/curvefs/warmup.list
curve fs warmup add /mnt/curvefs/warmupwill warmup a file(directory). /mnt/curvefs/warmup.list
bs
list
list logical-pool
list all logical pool information
Usage:
curve bs list logical-pool
Output:
+----+-------+-----------+----------+-------+------+--------+------+--------+---------+
| ID | NAME  | PHYPOOLID |   TYPE   | ALLOC | SCAN | TOTAL  | USED |  LEFT  | RECYCLE |
+----+-------+-----------+----------+-------+------+--------+------+--------+---------+
| 1  | pool1 | 1         | PAGEFILE | ALLOW | true | 44 GiB | 0 B  | 44 GiB | 0 B     |
+----+-------+-----------+----------+-------+------+--------+------+--------+---------+
list server
list all server information in curvebs
Usage:
curve bs list server
Output:
+----+---------------------+------+---------+-------------------+-------------------+
| ID |      HOSTNAME       | ZONE | PHYPOOL |   INTERNALADDR    |   EXTERNALADDR    |
+----+---------------------+------+---------+-------------------+-------------------+
| 1  | ***************_0_0 | 1    | 1       | **.***.**.**:**** | **.***.**.**:**** |
+----+---------------------+------+         +-------------------+-------------------+
| 2  | ***************_1_0 | 2    |         | **.***.**.**:**** | **.***.**.**:**** |
+----+---------------------+------+         +-------------------+-------------------+
| 3  | ***************_2_0 | 3    |         | **.***.**.**:**** | **.***.**.**:**** |
+----+---------------------+------+---------+-------------------+-------------------+
list client
list all client information in curvebs
curve bs list client
Output:
+------------+------+
|     IP     | PORT |
+------------+------+
| 172.17.0.2 | 9000 |
+------------+------+
list dir
list dir information in curvebs
curve bs list dir --path /
Output:
+------+-------------+----------+-----------------+------------+---------------------+---------------+-------------+
|  ID  |  FILENAME   | PARENTID |    FILETYPE     |   OWNER    |        CTIME        | ALLOCATEDSIZE |  FILESIZE   |
+------+-------------+----------+-----------------+------------+---------------------+---------------+-------------+
| 1    | /RecycleBin | 0        | INODE_DIRECTORY | root       | 2022-11-12 16:38:25 |      0 B      |     0 B     |
+------+-------------+----------+-----------------+------------+---------------------+---------------+-------------+
list space
show curvebs all disk type space, include total space and used space
curve bs list space
Output:
+----------+---------+---------+---------+------------+---------+
|   TYPE   | TOTAL   |  USED   |  LEFT   | RECYCLABLE | CREATED |
+----------+---------+---------+---------+------------+---------+
| physical | *** GiB | *** GiB | *** GiB | -          | -       |
+----------+---------+---------+---------+------------+---------+
| logical  | *** GiB | *** GiB | *** GiB | *** GiB    | *** GiB |
+----------+---------+---------+---------+------------+---------+
list chunkserver
list chunkserver information in curvebs
curve bs list chunkserver
Output:
+----+------+-----------+------+-----------+------------+------------+-----------------------------------------------+--------------+-------------+------------------+-----------+
| ID | TYPE |    IP     | PORT | RWSTATUS  | DISKSTATE  | COPYSETNUM |                  MOUNTPOINT                   | DISKCAPACITY |  DISKUSED   | UNHEALTHYCOPYSET |  EXTADDR  |
+----+------+-----------+------+-----------+------------+------------+-----------------------------------------------+--------------+-------------+------------------+-----------+
| 1  | nvme | 127.0.0.1 | 8201 | READWRITE | DISKNORMAL | 100        | local:///curvebs/playground/chunkserver1/data | 39 GiB       | 42140479488 | 0 %              | 127.0.0.1 |
+----+      +           +------+           +            +------------+-----------------------------------------------+--------------+-------------+------------------+           +
| 2  |      |           | 8202 |           |            | 100        | local:///curvebs/playground/chunkserver2/data | 39 GiB       | 42140479488 | 0 %              |           |
+----+      +           +------+           +            +------------+-----------------------------------------------+--------------+-------------+------------------+           +
| 3  |      |           | 8200 |           |            | 100        | local:///curvebs/playground/chunkserver0/data | 39 GiB       | 42140479488 | 0 %              |           |
+----+------+-----------+------+-----------+------------+------------+-----------------------------------------------+--------------+-------------+------------------+-----------+
list scan-status
list curvebs all copyset that scanning is false
curve bs list scan-status
Output:
+-------------+-----------+
| LOGICALPOOL | COPYSETID |
+-------------+-----------+
| 1           | 1         |
+-------------+-----------+
| 1           | 10        |
+-------------+-----------+
| 1           | 100       |
+-------------+-----------+
| 1           | 11        |
+-------------+-----------+
| 1           | 12        |
+-------------+-----------+
| 1           | 13        |
+-------------+-----------+
| 1           | 14        |
+-------------+-----------+
| 1           | 15        |
+-------------+-----------+
| 1           | 16        |
+-------------+-----------+
| 1           | 17        |
+-------------+-----------+
| 1           | 18        |
+-------------+-----------+
| 1           | 19        |
+-------------+-----------+
| 1           | 2         |
+-------------+-----------+
| 1           | 20        |
+-------------+-----------+
| 1           | 21        |
+-------------+-----------+
| 1           | 22        |
+-------------+-----------+
| 1           | 23        |
+-------------+-----------+
| 1           | 24        |
+-------------+-----------+
| 1           | 25        |
+-------------+-----------+
| 1           | 26        |
+-------------+-----------+
| 1           | 27        |
+-------------+-----------+
| 1           | 28        |
+-------------+-----------+
| 1           | 29        |
+-------------+-----------+
| 1           | 3         |
+-------------+-----------+
| 1           | 30        |
+-------------+-----------+
| 1           | 31        |
+-------------+-----------+
| 1           | 32        |
+-------------+-----------+
| 1           | 33        |
+-------------+-----------+
| 1           | 34        |
+-------------+-----------+
| 1           | 35        |
+-------------+-----------+
| 1           | 36        |
+-------------+-----------+
| 1           | 37        |
+-------------+-----------+
| 1           | 38        |
+-------------+-----------+
| 1           | 39        |
+-------------+-----------+
| 1           | 4         |
+-------------+-----------+
| 1           | 40        |
+-------------+-----------+
| 1           | 41        |
+-------------+-----------+
| 1           | 42        |
+-------------+-----------+
| 1           | 43        |
+-------------+-----------+
| 1           | 44        |
+-------------+-----------+
| 1           | 45        |
+-------------+-----------+
| 1           | 46        |
+-------------+-----------+
| 1           | 47        |
+-------------+-----------+
| 1           | 48        |
+-------------+-----------+
| 1           | 49        |
+-------------+-----------+
| 1           | 5         |
+-------------+-----------+
| 1           | 50        |
+-------------+-----------+
| 1           | 51        |
+-------------+-----------+
| 1           | 52        |
+-------------+-----------+
| 1           | 53        |
+-------------+-----------+
| 1           | 54        |
+-------------+-----------+
| 1           | 55        |
+-------------+-----------+
| 1           | 56        |
+-------------+-----------+
| 1           | 57        |
+-------------+-----------+
| 1           | 58        |
+-------------+-----------+
| 1           | 59        |
+-------------+-----------+
| 1           | 6         |
+-------------+-----------+
| 1           | 60        |
+-------------+-----------+
| 1           | 61        |
+-------------+-----------+
| 1           | 62        |
+-------------+-----------+
| 1           | 63        |
+-------------+-----------+
| 1           | 64        |
+-------------+-----------+
| 1           | 65        |
+-------------+-----------+
| 1           | 66        |
+-------------+-----------+
| 1           | 67        |
+-------------+-----------+
| 1           | 68        |
+-------------+-----------+
| 1           | 69        |
+-------------+-----------+
| 1           | 7         |
+-------------+-----------+
| 1           | 70        |
+-------------+-----------+
| 1           | 71        |
+-------------+-----------+
| 1           | 72        |
+-------------+-----------+
| 1           | 73        |
+-------------+-----------+
| 1           | 74        |
+-------------+-----------+
| 1           | 75        |
+-------------+-----------+
| 1           | 76        |
+-------------+-----------+
| 1           | 77        |
+-------------+-----------+
| 1           | 78        |
+-------------+-----------+
| 1           | 79        |
+-------------+-----------+
| 1           | 8         |
+-------------+-----------+
| 1           | 80        |
+-------------+-----------+
| 1           | 81        |
+-------------+-----------+
| 1           | 82        |
+-------------+-----------+
| 1           | 83        |
+-------------+-----------+
| 1           | 84        |
+-------------+-----------+
| 1           | 85        |
+-------------+-----------+
| 1           | 86        |
+-------------+-----------+
| 1           | 87        |
+-------------+-----------+
| 1           | 88        |
+-------------+-----------+
| 1           | 89        |
+-------------+-----------+
| 1           | 9         |
+-------------+-----------+
| 1           | 90        |
+-------------+-----------+
| 1           | 91        |
+-------------+-----------+
| 1           | 92        |
+-------------+-----------+
| 1           | 93        |
+-------------+-----------+
| 1           | 94        |
+-------------+-----------+
| 1           | 95        |
+-------------+-----------+
| 1           | 96        |
+-------------+-----------+
| 1           | 97        |
+-------------+-----------+
| 1           | 98        |
+-------------+-----------+
| 1           | 99        |
+-------------+-----------+
list may-broken-vol
list may broken volumes
Usage:
curve bs list may-broken-vol
Output:
+----------+
| FILENAME | 
+----------+
|   test   |        
+----------+
clean-recycle
clean the recycle bin
Usage:
curve bs clean-recycle --recycleprefix=/test --expiredtime=1h
Output:
+---------+
| RESULT  | 
+---------+
| success |        
+---------+
query
query file
query the file info and actual space
Usage:
curve bs query file --path=/test
Output:
+------+------+----------------+-------+--------+---------+--------+-----+---------------------+--------------+---------+-----------------+----------+
|  ID  | NAME |      TYPE      | OWNER | CHUNK  | SEGMENT | LENGTH | SEQ |        CTIME        |    STATUS    | STRIPE  |    THROTTLE     |  ALLOC   |
+------+------+----------------+-------+--------+---------+--------+-----+---------------------+--------------+---------+-----------------+----------+
| 1003 | test | INODE_PAGEFILE | test  | 16 MiB | 1.0 GiB | 10 GiB | 1   | 2022-08-29 17:00:55 | kFileCreated | count:0 | type:IOPS_TOTAL | size:0 B |
|      |      |                |       |        |         |        |     |                     |              | uint:0  | limit:2000      |          |
|      |      |                |       |        |         |        |     |                     |              |         | type:BPS_TOTAL  |          |
|      |      |                |       |        |         |        |     |                     |              |         | limit:125829120 |          |
+------+------+----------------+-------+--------+---------+--------+-----+---------------------+--------------+---------+-----------------+----------+
query chunk
query the location of the chunk corresponding to the offset
Usage:
curve bs query chunk --path /test1 --offset 1008600000 
Output:
+-------+-------------+---------+------------+----------------------+
| CHUNK | LOGICALPOOL | COPYSET |   GROUP    |       LOCATION       |
+-------+-------------+---------+------------+----------------------+
| 61    | 1           | 61      | 4294967357 | ***.***.***.***:**** |
|       |             |         |            | ***.***.***.***:**** |
|       |             |         |            | ***.***.***.***:**** |
+-------+-------------+---------+------------+----------------------+
query segment
query the segments info of the file
Usage:
curve bs query seginfo --path /test1 
Output:
+-------------+-------------+-----------+------------+---------+-------+
| LOGICALPOOL | SEGMENTSIZE | CHUNKSIZE |   START    | COPYSET | CHUNK |
+-------------+-------------+-----------+------------+---------+-------+
| 1           | 1073741824  | 16777216  | 0          | 1       | 1     |
+             +             +           +            +---------+-------+
|                        ......                                        |
+             +             +           +------------+---------+-------+
|             |             |           | 9663676416 | 1       | 101   |
+             +             +           +            +---------+-------+
|                        ......                                        |
+             +             +           +            +---------+-------+
|             |             |           |            | 99      | 99    |
+-------------+-------------+-----------+------------+---------+-------+
query scan-status
quey ScanStatus Info in bs
Usage:
curve bs query scan-satus --copysetid 1 --logicalpoolid 1
Output:
+-------------+-----------+-------+-------------+--------------------+
| LOGICALPOOL | COPYSETID | SCAN  | LASTSCANSEC | LASTSCANCONSISTENT |
+-------------+-----------+-------+-------------+--------------------+
| 1           | 1         | false | 1684425801  | true               |
+-------------+-----------+-------+-------------+--------------------+
status
status etcd
get the etcd status of curvebs
Usage:
curve bs status etcd
Output:
+---------------------+---------+----------+
|        ADDR         | VERSION |  STATUS  |
+---------------------+---------+----------+
| ***.***.*.***:***** | 3.4.10  | follower |
+---------------------+         +          +
| ***.***.*.***:***** |         |          |
+---------------------+         +----------+
| ***.***.*.***:***** |         | leader   |
+---------------------+---------+----------+
status mds
get the mds status of curvebs
Usage:
curve bs status mds
Output:
+-------------------+-------------------+-------------------+----------+
|       ADDR        |     DUMMYADDR     |      VERSION      |  STATUS  |
+-------------------+-------------------+-------------------+----------+
| **.***.**.**:**** | **.***.**.**:**** | ci+562296c7+debug | follower |
+-------------------+-------------------+                   +          +
| **.***.**.**:**** | **.***.**.**:**** |                   |          |
+-------------------+-------------------+                   +----------+
| **.***.**.**:**** | **.***.**.**:**** |                   | leader   |
+-------------------+-------------------+-------------------+----------+
status client
get the client status of curvebs
Usage:
curve bs status client
Output:
+-------------+----------------+---------------------+-----+
|    TYPE     |    VERSION     |        ADDR         | NUM |
+-------------+----------------+---------------------+-----+
| nebd-server | 9.9.9+2c4861ca | ***.***.**.***:**** | 2   |
+             +                +---------------------+     +
|             |                | ***.***.**.***:**** |     |
+-------------+----------------+---------------------+-----+
status snapshotserver
get the mds status of curvebs
Usage:
curve bs status snapshotserver
Output:
+---------------------+---------------------+-------------------+----------+
|        ADDR         |      DUMMYADDR      |    VERSION        |  STATUS  |
+---------------------+---------------------+-------------------+----------+
| ***.***.**.***:**** | ***.***.**.***:**** | ci+562296c7+debug | follower |
+---------------------+---------------------+                   +          +
| ***.***.**.***:**** | ***.***.**.***:**** |                   |          |
+---------------------+---------------------+                   +----------+
| ***.***.**.***:**** | ***.***.**.***:**** |                   | leader   |
+---------------------+---------------------+-------------------+----------+
status chunkserver
get the chunkserver status of curvebs
Usage:
curve bs status chunkserver
Output:
+------------------+------------------+----------------+--------+------------+
|   EXTERNALADDR   |   INTERNALADDR   |    VERSION     | STATUS | RECOVERING |
+------------------+------------------+----------------+--------+------------+
| **************** | **************** | d9b6bb98+debug | online | false      |
+------------------+------------------+                +        +            +
| **************** | **************** |                |        |            |
+------------------+------------------+                +        +            +
| **************** | **************** |                |        |            |
+------------------+------------------+----------------+--------+------------+
status copyset
get the copyset status of curvebs
Usage:
curve bs status copyset
Output:
+------------+-----------+--------+--------+--------+---------+
| COPYSETKEY | COPYSETID | POOLID | STATUS | LOGGAP | EXPLAIN |
+------------+-----------+--------+--------+--------+---------+
| 4294967297 | 1         | 1      | ok     | 0      |         |
+------------+-----------+        +        +--------+---------+
| ......     |  ......   | ...... | ...... | ...... | ......  |
+------------+-----------+        +        +--------+---------+
| 4294967395 | 99        |        |        | 0      |         |
+------------+-----------+--------+--------+--------+---------+
delete
delete peer
delete the peer from the copyset
Usage:
curve bs delete peer
Output:
+------------------+------------------+---------+---------+--------+
|      LEADER      |       PEER       | COPYSET | RESULT  | REASON |
+------------------+------------------+---------+---------+--------+
| 127.0.0.1:8201:0 | 127.0.0.1:8202:0 | (1:29)  | success | null   |
+------------------+------------------+---------+---------+--------+
delete volume
delete volume clone
delete volume clone tasks in curvebs cluster
Usage:
curve bs delete volume clone
Output:
+------+--------------------------------------+--------------------------------------+-------+---------+            
| USER |                 SRC                  |               TASK ID                | FILE  | RESULT  |            
+------+--------------------------------------+--------------------------------------+-------+---------+            
| root | a19b5e5e-b306-488f-8e6d-d87282c869cb | d26e27a8-fcbd-4f7a-adf8-53795217cbb0 | /root | success |            
+------+--------------------------------------+--------------------------------------+-------+---------+  
delete volume recover
delete volume recover tasks in curvebs cluster
Usage:
curve bs delete volume recover
Output:
+------+--------------------------------------+--------------------------------------+-------+---------+             
| USER |                 SRC                  |               TASK ID                | FILE  | RESULT  |             
+------+--------------------------------------+--------------------------------------+-------+---------+             
| root | a19b5e5e-b306-488f-8e6d-d87282c869cb | 9dfa8699-a275-4891-8ec2-e447a0ccc77c | /root | success |             
+------+--------------------------------------+--------------------------------------+-------+---------+   
update
update peer
reset peer
Usage:
curve bs update peer 127.0.0.0:8200:0 --logicalpoolid=1 --copysetid=1
Output:
+----------------------+---------+---------+--------+
|         PEER         | COPYSET | RESULT  | REASON |
+----------------------+---------+---------+--------+
|   127.0.0.0:8200:0   | (1:1)   | success | null   |
+----------------------+---------+---------+--------+
update leader
transfer leader
Usage:
curve bs update leader 127.0.0.1:8202:0 --logicalpoolid=1 --copysetid=1 --peers=127.0.0.1:8200:0,127.0.0.1:8201:0,127.0.0.1:8202:0
Output:
+-----------------------+-----------------------+---------+---------+
|        LEADER         |       OLDLEADER       | COPYSET | RESULT  |
+-----------------------+-----------------------+---------+---------+
| ***.***.**.***:****:* | ***.***.**.***:****:* | (1:1)   | success |
+-----------------------+-----------------------+---------+---------+
update file
expand pagefile
Usage:
curve bs update file --path /test2/test1 --size 10
Output:
+---------+
| RESULT  |
+---------+
| success |
+---------+
update throttle
update file throttle params
Usage:
curve bs update throttle --path /test1 --type=bps_total --limit 20000
Output:
+---------+
| RESULT  |
+---------+
| success |
+---------+
update scan-state
enable/disable scan for logical pool
Usage:
curve bs update scan-state --logicalpoolid 1 [--scan=true/false]
Output:
+----+------+---------+--------+
| ID | SCAN | RESULT  | REASON |
+----+------+---------+--------+
| 1  | true | success | null   |
+----+------+---------+--------+
update copyset availflag
update copyset availflag
Usage:
curve bs update copyset availflag --availflag=true [--dryrun=true/false]
Output:
+--------+-----------+---------------+--------+
| POOLID | COPYSETID |   AVAILFLAG   | DRYRUN |
+--------+-----------+---------------+--------+
| 1      | 1         | false => true | true   |
+--------+-----------+---------------+--------+
update leader-schedule
"rapidly transfer leader
Usage:
curve bs update leader-schedule --logicalpoolid 1
curve bs update leader-schedule --all
Output:
+---------+--------+
| RESULT  | REASON |
+---------+--------+
| success | null   |
+---------+--------+
create
create file
create pagefile
Usage:
curve bs create file --path /test2/test4  --size 10
Output:
+---------+
| RESULT  |
+---------+
| success |
+---------+
create dir
create directory
Usage:
curve bs create dir --path /test2/test5 
Output:
+---------+
| RESULT  |
+---------+
| success |
+---------+
check
check copyset
check copysets health in curvebs
Usage:
curve bs check copyset --copysetid 1 --logicalpoolid 1
Output:
+------------+-----------+--------+--------+--------+---------+
| COPYSETKEY | COPYSETID | POOLID | STATUS | LOGGAP | EXPLAIN |
+------------+-----------+--------+--------+--------+---------+
| 4294967297 | 1         | 1      | ok     | 0      |         |
+------------+-----------+--------+--------+--------+---------+
check chunkserver
check chunkserver health in curvebs
Usage:
curve bs check chunkserver --chunkserverid 1
Output:
+------------+-----------+--------+--------+--------+---------+
| CHUNKSERVERID | HELATHYCOUNT | UNHEALTHYCOUNT | UNHEALTHYRATIO |
+------------+-----------+--------+--------+--------+---------+
| 1             | 100          | 0              | 0.00%          |   
+------------+-----------+--------+--------+--------+---------+
check server
check copysets health in server
Usage:
curve bs check server --serverid 1
curve bs check server --ip 127.0.0.1 --port 8200
Output:
+--------+-----------+-------+------------------+
| SERVER |    IP     | TOTAL | UNHEALTHYCOPYSET |
+--------+-----------+-------+------------------+
| 1      | 127.0.0.1 | 100   | 0(0%)            |
+--------+-----------+-------+------------------+
snapshot
snapshot copyset
take snapshot for copyset
Usage:
curve bs snapshot copyset 127.0.0.0:8200:0 --logicalpoolid=1 --copysetid=1
Output:
+-----------------------+---------+---------+
|         PEER          | COPYSET | RESULT  |
+-----------------------+---------+---------+
| ***.***.**.***:****:* | (**:**) | success |
+-----------------------+---------+---------+
curve bs snapshot copyset --all
Output:
+----------------+---------+
|  CHUNKSERVER   | RESULT  |
+----------------+---------+
| **.*.*.**:8200 | failed  |
+----------------+---------+
| **.*.*.**:8201 | success |
+----------------+         +
| **.*.*.**:8202 |         |
+----------------+---------+
Comparison of old and new commands
curve fs
| old | new | 
|---|---|
| curvefs_tool check-copyset | curve fs check copyset | 
| curvefs_tool create-fs | curve fs create fs | 
| curvefs_tool create-topology | curve fs create topology | 
| curvefs_tool delete-fs | curve fs delete fs | 
| curvefs_tool list-copyset | curve fs list copyset | 
| curvefs_tool list-fs | curve fs list fs | 
| curvefs_tool list-fs | curve fs list mountpoint | 
| curvefs_tool list-partition | curve fs list partition | 
| curvefs_tool query-copyset | curve fs query copyset | 
| curvefs_tool query-fs | curve fs query fs | 
| curvefs_tool query-inode | curve fs query inode | 
| curvefs_tool query-metaserver | curve fs query metaserver | 
| curvefs_tool query-partition | curve fs query partition | 
| curvefs_tool status-mds | curve fs status mds | 
| curvefs_tool status-metaserver | curve fs status metaserver | 
| curvefs_tool status-etcd | curve fs status etcd | 
| curvefs_tool status-copyset | curve fs status copyset | 
| curvefs_tool status-cluster | curve fs status cluster | 
| curvefs_tool umount-fs | curve fs umount fs | 
| curvefs_tool usage-inode | curve fs usage inode | 
| curvefs_tool usage-metadata | curve fs usage metadata | 
curve bs
| old | new | 
|---|---|
| curve_ops_tool logical-pool-list | curve bs list logical-pool | 
| curve_ops_tool get -fileName= | curve bs query file -path | 
| curve_ops_tool etcd-status | curve bs status etcd | 
| curve_ops_tool mds-status | curve bs status mds | 
| curve_ops_tool server-list | curve bs list server | 
| curve_ops_tool client-list | curve bs list client | 
| curve_ops_tool delete | curve bs delete file | 
| curve_ops_tool list | curve bs list dir | 
| curve_ops_tool create | curve bs create file/dir | 
| curve_ops_tool seginfo | curve bs query seginfo | 
| curve_ops_tool chunk-location | curve bs query chunk | 
| curve_ops_tool remove-peer | curve bs delete peer | 
| curve_ops_tool reset-peer | curve bs update peer | 
| curve_ops_tool space | curve bs list space | 
| curve_ops_tool update-throttle | curve bs update throttle | 
| curve_ops_tool check-copyset | curve bs check copyset | 
| curve_ops_tool client-status | curve bs status client | 
| curve_ops_tool check-operator | curve bs check operator | 
| curve_ops_tool snapshot-clone-status | curve bs status snapshotserver | 
| curve_ops_tool transfer-leader | curve bs update leader | 
| curve_ops_tool do-snapshot | curve bs snapshot copyset | 
| curve_ops_tool set-scan-state | curve bs update scan-state | 
| curve_ops_tool chunkserver-status | curve bs status chunkserver | 
| curve_ops_tool chunkserver-list | curve bs list chunkserver | 
| curve_ops_tool set-copyset-availflag | curve bs update copyset availflag | 
| curve_ops_tool scan-status | curve bs list/query scan-status | 
| curve_ops_tool clean-recycle | curve bs clean-recycle | 
| curve_ops_tool copysets-status | curve bs status copyset | 
| curve_ops_tool list-may-broken-vol | curve bs list may-broken-vol | 
| curve_ops_tool rapid-leader-schedule | curve bs update leader-schedule | 
| curve_ops_tool do-snapshot-all | curve bs snapshot --all | 
| curve_ops_tool check-chunkserver | curbe bs check chunkserver | 
| curve_ops_tool status | |
| curve_ops_tool check-consistency | |
| curve_ops_tool check-server | curve bs check server |