---
title: 创建admin user、storage targets和chain table
description: "本章节主要描述如何在META节点创建admin user、storage targets和chain table。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/3FS/kunpeng3fs_01_0018.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/3FS/kunpeng3fs_01_0018.html
indexId: d9d81c17b22d3626dde929a373d372882f92692827d9694e264dc8a5cdafd43b66
---
# 创建admin user、storage targets和chain table

本章节主要描述如何在META节点创建admin user、storage targets和chain table。

1. 创建admin user。

```
/opt/3fs/bin/admin_cli -cfg /opt/3fs/etc/admin_cli.toml "user-add --root --admin 0 root"
```


  回显信息如下。

```
# Uid
0
# Name               root
# Token              AAB7sN/h8QBs7/+B2wBQ03Lp(Expired at N/A)
# IsRootUser         true
# IsAdmin            true
# Gid                0
```


  其中AAB7sN/h8QBs7/+B2wBQ03Lp就是Token，将其保存到“/opt/3fs/etc/token.txt”中。

2. 安装Python依赖。

```
pip3 install -r /home/3fs/deploy/data_placement/requirements.txt
```


3. 创建chain Table。

```
cd /home
python3 /home/3fs/deploy/data_placement/src/model/data_placement.py -ql -relax -type CR --num_nodes 3 --replication_factor 3 --min_targets_per_disk 6
```

其中：

  - --num_nodes：存储节点数量。
  - --replication_factor：副本因子。
执行成功会在当前目录下生成一个“output/DataPlacementModel-v_*”文件夹，如“/home/output/DataPlacementModel-v_3-b_6-r_6-k_3-λ_3-lb_3-ub_3”。
4. 计算chain。

```
python3 /home/3fs/deploy/data_placement/src/setup/gen_chain_table.py \
--chain_table_type CR --node_id_begin 10001 --node_id_end 10003 \
--num_disks_per_node 8 --num_targets_per_disk 6 \
--target_id_prefix 1 --chain_id_prefix 9 \
--incidence_matrix_path /home/output/DataPlacementModel-v_3-b_6-r_6-k_3-λ_3-lb_3-ub_3/incidence_matrix.pickle
```

其中：

  - --node_id_begin：storage节点NodeId开始值。
  - --node_id_end：storage节点NodeId结束值。
  - --num_disks_per_node：每个存储节点挂载了几块硬盘。
  - -num_targets_per_disk：每个挂载的硬盘有几个target。
  - --incidence_matrix_path：    3
生成的文件路径。
执行成功后，查看“output”目录下是否产生了以下文件。

```
-rw-r--r--  1 root root  2387 Mar  6 11:55 generated_chains.csv
-rw-r--r--  1 root root   488 Mar  6 11:55 generated_chain_table.csv
-rw-r--r--  1 root root 15984 Mar  6 11:55 remove_target_cmd.txt
```

5. 创建storage target。

```
/opt/3fs/bin/admin_cli --cfg /opt/3fs/etc/admin_cli.toml --config.user_info.token $(<"/opt/3fs/etc/token.txt") < /home/output/create_target_cmd.txt
```


6. 上传chains到mgmtd service。

```
/opt/3fs/bin/admin_cli --cfg /opt/3fs/etc/admin_cli.toml --config.user_info.token $(<"/opt/3fs/etc/token.txt") "upload-chains /home/output/generated_chains.csv"
```


7. 上传chain table到mgmtd service。

```
/opt/3fs/bin/admin_cli --cfg /opt/3fs/etc/admin_cli.toml --config.user_info.token $(<"/opt/3fs/etc/token.txt") "upload-chain-table --desc stage 1 /home/output/generated_chain_table.csv"
```


8. 查看list-chains。

```
/opt/3fs/bin/admin_cli -cfg /opt/3fs/etc/admin_cli.toml "list-chains"
```


  回显信息如下。

```
# ChainId    ReferencedBy  ChainVersion  Status   PreferredOrder  Target                          Target   Target
# 900100001  1             1             SERVING  []              101000300101(SERVING-UPTODATE)  101000200101(SERVING-UPTODATE)  101000100101(SERVING-UPTODATE)
# 900100002  1             1             SERVING  []              101000300102(SERVING-UPTODATE)  101000200102(SERVING-UPTODATE)  101000100102(SERVING-UPTODATE)
# ...
```
