-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathipfs_cluster部署
152 lines (118 loc) · 7.64 KB
/
ipfs_cluster部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
IPFS Cluster 部署前提需要在所有设备完成ipfs私有链部署
下载下面两个包
https://dist.ipfs.io/#ipfs-cluster-ctl
https://dist.ipfs.io/#ipfs-cluster-service
复制下载软件包到/opt/ipfs_media
# cd /opt/ipfs_media
# tar -xzvf *.tar.gz
# cp ipfs-cluster-service /usr/bin/
# cp ipfs-cluster-ctl /usr/bin/ # 控制节点可只部署一个, 其他节点可不复制该文件
默认所有的配置文件在 /root/.ipfs-cluster 下
/root/.ipfs-cluster/service.json 为默认配置文件
也可用-c 参数制定配置文件位置
# ipfs-cluster-service -c <path>
在所有节点执行初始化 ipfs cluster 命令
# ipfs-cluster-service init
选取ip最小的节点为第一个节点并获取 secret 值,并修改其他所有节点/root/.ipfs-cluster/service.json文件中 secret 值为该值
# cat /root/.ipfs-cluster/service.json
{
"cluster": {
"id": "QmNPpAU8AWMgmfWgkhQxXZuKVsD6Y5sUQicc3xNU5pF4YR",
"peername": "ipfsserver01",
"private_key": "CAASpwkwggSjAgEAAoIBAQC2QzOWhhMpISht7h7UXfn1n+ENMPOYw3EVrkDVEs6DBZpzOiKGTXFs+7ejY8z2F1Nl8nJl5m25/egGWLopsECgPL14u4XaIb0ylhN0MP2ysb5QBT6WJMxQANKm6vWHg9aWbscAGzKrRG33AZJ6IPxU61DinS4FQ+LzafR3/Z5bj4xfLnU/q/qGtm5iIc7yla9IvJg7Q2bzPJ1fwruGJyWVbGpwYp/F7H5NEDPK0n7Ytg6psJMAGcbzuvlacUareDKKUxs54xeBJYfK7N7WRkNYd0GD22UdDDXneNhFvDYWVptZXPEJCW3egPkm/kY34Cpm8BemaSpOggmyjcttd3eRAgMBAAECggEAFjqh+xTFF3oUzTuChRIlH0DtmMdEnngPvb4v6AzQJQi06qLHfSvKzqjwn7vXTphPsppcO3NcJJgECWoe4mC9sQ1XancsfwsoYRgOrVggSQAGnwnUtUktpgBDsNntMibxMA24tZmbl2nUI5EMhVqqi8zbY5gZ+chq0Jc2mr/S5YWqaK9+hXQ8r6CxM6jubP0bbCf11xZkCsv5BeffVC6ByD/Gg7eouxwAn3q0obQHx7KcrqgUsmfzESM2qxHlYfMiCOy11ixB7VlPPYMjhnCVzsqC9Djw89Rbg4EwRojc8TJV3yhSnk0qIvQQJvdSxTsxWQNxzwvhsryqX6rB+lTIQQKBgQDx8FOE41nfIMP07hqAN0BQek56bHDS/7fgvDeeORwxkCofQSrjOffoF6hWTSw1nwwVJ0g1OxOU0aD7hHv4I1qmM8GQ8yVZhAw2JHA+2aUMZtGdxT+egQky0jJ62TaeJFxbF4Nxwj6dYksbA2ko0Z0W+UzZ3S6xFokufJGux69AiQKBgQDA2vwlNWHkcUXhgEJM6KLVPNGIE0qEy8VwcrQ7HgfpZSIMjcp5fMhdV+vhk8qvuUBFHnSvjbkfCq4YaPLj4iEzK5hWdW9dygGyB0Nr9G1SQHUwe/YnPszfqh5edSo7/aisZmtcJ2E0N3jNjCu4E7obAyawp6QT/YJhjstYN4RsyQKBgQDReXpmuY4rsavYmnuZfb0SsQLX3qJFHiFv1Kb3OI1foGnIC919RciOTEV1C3Z2qtGEUzGi3RaUKHiQrOHFM58d/fvfa5ZwDfOgwSXqVPkhZrihOJJfw2tadEI+uWkfvW21dQNa8IrUK7HJnsdjDzJLHOjcTTRLIa7+794XDU+AuQKBgEE+1OdRtBixKc8ssUGLwusZdFnxDNj4h4ePhuIpOsv/ZxGQNtv7F15dDHR4p63jopa/wwJRlDuoRVYEy4fFTS4epZ86g77bRM+SHYE8ZG/bVspcZd7JJE7XIwcZ5Hv/ST1qORAoUn5z9e60aWYRZnkVC9XgIWaR8bZHtQvXXHnhAoGAZ50ZME8q1Oh3B9GU2nXEiK1uClSOcRjYcrHsUSOlpLh+t5cAFHeDk7/lXQb+CrmLKonREJub150XvkHCNvczWV5w9cGwLzkCZu1SDmYtpeDBxRAsyqdc3XekriW2v8p/RMtdB22t2CjLtmHMujkj+3hwm4xEFa7KI8lK9RuTqgk=",
"secret": "2706024cb4ec4a71c27f601b1ddf92a4b884a8749e3625354a9e14536836578d",
略......
或者使用 od -vN 32 -An -tx1 /dev/urandom | tr -d ' \n' 命令生成秘钥
# export CLUSTER_SECRET=$(od -vN 32 -An -tx1 /dev/urandom | tr -d ' \n')
# echo $CLUSTER_SECRET
9a420ec947512b8836d8eb46e1c56fdb746ab8a78015b9821e6b46b38344038f
# 配置 ipfs-cluster.service 系统服务 参考https://cluster.ipfs.io/documentation/deployment/#systemd-service-files
# vi /usr/lib/systemd/system/ipfs-cluster.service #添加下面内容
[Unit]
Description=IPFS Cluster Service
After=network.target
[Service]
ExecStart=/usr/bin/ipfs-cluster-service daemon --upgrade
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target
配置 ipfs-cluster 服务启动
# systemctl daemon-reload
# systemctl enable ipfs-cluster.service
# systemctl stop ipfs-cluster.service
启动ip最小的节点使用下面命令
# systemctl start ipfs-cluster.service
获得该节点 ipfs-cluster id
# ipfs-cluster-ctl id
QmXysjiXyvtesL7jTQ4u9DuedKYrfsM8vf8qgUNtnZbaGx | ipfsserver03 | Sees 4 other peers
> Addresses:
......略
QmXysjiXyvtesL7jTQ4u9DuedKYrfsM8vf8qgUNtnZbaGx 为该节点集群id
获取所有集群id后编辑下表:
/ip4/10.10.20.221/tcp/9096/ipfs/QmNPpAU8AWMgmfWgkhQxXZuKVsD6Y5sUQicc3xNU5pF4YR
/ip4/10.10.20.222/tcp/9096/ipfs/QmQfPPQSWXFA2PNctptgUvG4Vc91ghhA3uLwt6VXPvivve
/ip4/10.10.20.223/tcp/9096/ipfs/QmXysjiXyvtesL7jTQ4u9DuedKYrfsM8vf8qgUNtnZbaGx
/ip4/10.10.20.224/tcp/9096/ipfs/Qmc7fjoUrWcgFm3gGbwurPYKNS55QJz8xNerX56Gj5FbXq
/ip4/10.10.20.225/tcp/9096/ipfs/QmNnNKmXfsqyeU5HwmYDxGtvG6vZKyBhUgpRWV1BTUmKd7
其他节点启动命令
# systemctl stop ipfs-cluster.service
# ipfs-cluster-service daemon --bootstrap /ip4/10.10.20.221/tcp/9096/ipfs/QmNPpAU8AWMgmfWgkhQxXZuKVsD6Y5sUQicc3xNU5pF4YR
# crtl-C 退出当前命令输出
# systemctl restart ipfs-cluster.service 用后台进程方式启动ipfs-cluster
查看其他节点信息
# ipfs-cluster-ctl peers ls
QmNPpAU8AWMgmfWgkhQxXZuKVsD6Y5sUQicc3xNU5pF4YR | ipfsserver01 | Sees 4 other peers
> Addresses:
- /ip4/10.180.11.221/tcp/9096/ipfs/QmNPpAU8AWMgmfWgkhQxXZuKVsD6Y5sUQicc3xNU5pF4YR
- /ip4/127.0.0.1/tcp/9096/ipfs/QmNPpAU8AWMgmfWgkhQxXZuKVsD6Y5sUQicc3xNU5pF4YR
> IPFS: QmVKxUgE6MGtPydSpoxCTyFjeEbxtXJpBKP5bYWhdSh9PW
- /ip4/10.220.20.221/tcp/4001/ipfs/QmVKxUgE6MGtPydSpoxCTyFjeEbxtXJpBKP5bYWhdSh9PW
- /ip4/127.0.0.1/tcp/4001/ipfs/QmVKxUgE6MGtPydSpoxCTyFjeEbxtXJpBKP5bYWhdSh9PW
......略 可在这里看到其他所有节点信息
如果无法启动 daemon 进程, 清理下状态
# ipfs-cluster-service state cleanup
删除 peer
# ipfs-cluster-ctl peers rm <peerID>
停止手工启动的ipfs-cluster进程
# ps -ef |grep ipfs-cluster
root 9441 1 0 Oct24 ? 00:16:00 /usr/bin/ipfs-cluster-service daemon
# kill -9 9441
以后台systemctl进程启动
# systemctl start ipfs-cluster.service
# ps -ef |grep ipfs-cluster
root 9441 1 0 Oct24 ? 00:16:00 /usr/bin/ipfs-cluster-service daemon --upgrade
向集群添加文件
# ipfs-cluster-ctl add /tmp/yum.log
added QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH yum.log
删除pin的文件
# ipfs-cluster-ctl pin rm QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH
QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH :
> ipfsserver01 : UNPINNED | 2018-10-16T07:53:24Z
> ipfsserver02 : UNPINNED | 2018-10-16T07:53:24Z
> ipfsserver03 : UNPINNED | 2018-10-16T07:53:24Z
向集群添加目录
# ipfs-cluster-ctl add -r /tmp/testfile
查看 pin 文件
# ipfs-cluster-ctl pin ls
QmbT9pR8pyppjjuZrMvbDGgxBA48FWRa1i2RVJ1GgvH9jd | | PIN | Repl. Factor: -1 | Allocations: [everywhere] | Recursive
-1 == all
常用命令
$ ipfs-cluster-ctl id # show cluster peer and ipfs daemon information
$ ipfs-cluster-ctl peers ls # list cluster peers
$ ipfs-cluster-ctl peers rm <peerid> # remove a cluster peer
$ ipfs-cluster-ctl add myfile.txt http://domain.com/file.txt # adds content to the cluster
$ ipfs-cluster-ctl pin add Qma4Lid2T1F68E3Xa3CpE6vVJDLwxXLD8RfiB9g1Tmqp58 # pins a CID in the cluster
$ ipfs-cluster-ctl pin rm Qma4Lid2T1F68E3Xa3CpE6vVJDLwxXLD8RfiB9g1Tmqp58 # unpins a CID from the clustre
$ ipfs-cluster-ctl pin ls [CID] # list tracked CIDs (shared state)
$ ipfs-cluster-ctl status [CID] # list current status of tracked CIDs (local state)
$ ipfs-cluster-ctl sync Qma4Lid2T1F68E3Xa3CpE6vVJDLwxXLD8RfiB9g1Tmqp58 # re-sync seen status against status reported by the IPFS daemon
$ ipfs-cluster-ctl recover Qma4Lid2T1F68E3Xa3CpE6vVJDLwxXLD8RfiB9g1Tmqp58 # attempt to re-pin/unpin CIDs in error state
查看节点状态
# ipfs-cluster-ctl status
QmfVqrFoBVw6PDGTaJBdzfb6D9Y9L4vikAzKoUc9XmQoc2 :
> ipfsserver01 : PINNED | 2018-10-24T09:12:10Z
> ipfsserver05 : PINNED | 2018-10-24T09:17:03Z
> ipfsserver02 : PINNED | 2018-10-24T09:15:04Z
> ipfsserver03 : PINNED | 2018-10-24T09:14:44Z
> ipfsserver04 : PINNED | 2018-10-24T09:16:23Z