配置文件
"Datastore": {
"StorageMax": "10GB", // 最大存储空间, 实际上, 存储量超过该值仍可以继续存储
"StorageGCWatermark": 90, // 存储空间警戒线, 只有 已使用存储空间/最大存储空间 超过该值, 定时自动 GC 才会生效, 否则不会 GC
"GCPeriod": "1h", // 每过 1h, 检查是否需要 GC
"Spec": {
"mounts": [
{
"child": {
"path": "blocks",
"shardFunc": "/repo/flatfs/shard/v1/next-to-last/2",
"sync": true,
"type": "flatfs"
},
"mountpoint": "/blocks", // 文件块存储路径(相对于 ~/.ipfs)
"prefix": "flatfs.datastore",
"type": "measure"
},
{
"child": {
"compression": "none",
"path": "datastore",
"type": "levelds"
},
"mountpoint": "/",
"prefix": "leveldb.datastore",
"type": "measure"
}
],
"type": "mount"
},
...
},
ipfs 定时 GC 功能
如配置所示,StorageMax
表明 ipfs 的最大存储空间,StorageGCWatermark
表明存储空间警戒线,GCPeriod
为检查是否 GC 的间隔时间。
当到达检查时间时,如果已用存储空间 > StorageMax * StorageGCWatermark
,则会发生 GC。
注意: 使用 ipfs daemon
启动 ipfs,并不会自动启动 ipfs 的定时GC功能。
需要开启相应的参数, 即 ipfs daemon --enable-gc
, 才会启动 ipfs 的定时GC功能。
ipfs 数据持久化
Spec
是 ipfs 数据持久化的规格说明书,说明了 ipfs 有哪些存储结构。下图是 ipfs 的 Spec
对应生成的 datastore 结构。
measure datastore
用于统计信息,如 GC 次数等。
mount datastore
用于存储有实际存储功能的 datastore。
flatfs datastore
用于存储 Block。
leveldb datastore
用于存储 KV 信息。
网友评论