Chris Lu
2026-02-11 21:58:40 -08:00
2 changed files with 45 additions and 2 deletions
+23
@@ -66,3 +66,26 @@ The balancing plan will try to evenly spread the number of writable and readonly
Run `weed shell` and `volume.mount -node <host>:<port> -volumeId <id>` to mount a volume file.
To mount all new volume files you can send a hang-up signal to the volume server causing a reload with a command such as `pkill -HUP -f "weed volume"`.
## Servicing live volumes
When dealing with hardware storage issues, it can be useful to prevent writes to volume servers _without_ stopping the service altogether - f.ex. on volumes with RAID storage backends. Volume servers support a maintenance mode for this: when enabled, the server becomes read-only. Reads will succeed, but any write attempt will error out.
Maintenance mode can be managed via the `volumeServer.state` shell command:
```
> volumeServer.state
192.168.10.111:9007 -> Maintenance mode: no
192.168.10.111:9008 -> Maintenance mode: no
192.168.10.111:9009 -> Maintenance mode: no
> volumeServer.state --nodes 192.168.10.111:9009 --maintenanceOn
192.168.10.111:9009 -> Maintenance mode: yes
> volumeServer.state
192.168.10.111:9007 -> Maintenance mode: no
192.168.10.111:9008 -> Maintenance mode: no
192.168.10.111:9009 -> Maintenance mode: yes
```
Maintenance mode is a sticky server state flag. Changes are effective immediately, and will persist even if the server is restarted.
+22 -2
@@ -9,17 +9,22 @@ Type: "help <command>" for help on <command>. Most commands support "<command> -
cluster.raft.add # add a server to the raft cluster
cluster.raft.ps # check current raft cluster status
cluster.raft.remove # remove a server from the raft cluster
cluster.raft.transferLeader # transfer raft leadership to another master server
cluster.status # outputs a quick overview of the cluster status
collection.delete # delete specified collection
collection.list # list all collections
ec.balance # balance all ec shards among all racks and volume servers
ec.decode # decode a erasure coded volume into a normal volume
ec.encode # apply erasure coding to a volume
ec.rebuild # find and rebuild missing ec shards among volume servers
ec.scrub # scrubs EC volume contents on volume servers.
fs.cat # stream the file content on to the screen
fs.cd # change directory to a directory /path/to/dir
fs.configure # configure and apply storage options for each location
fs.du # show disk usage
fs.log.purge # purge filer logs
fs.ls # list all files under a directory
fs.mergeVolumes # re-locate chunks into target volumes and try to clear lighter volumes.
fs.meta.cat # print out the meta data content for a file or directory
fs.meta.changeVolumeId # change volume id in existing metadata.
fs.meta.load # load saved filer meta data to restore the directory and file structure
@@ -33,9 +38,15 @@ Type: "help <command>" for help on <command>. Most commands support "<command> -
fs.verify # recursively verify all files under a directory
lock # lock in order to exclusively manage the cluster
mount.configure # configure the mount on current server
mq.balance # balance topic partitions
mq.topic.compact # compact the topic storage into parquet format
mq.topic.configure # configure a topic with a given name
mq.topic.describe # describe a topic
mq.topic.list # print out all topics
remote.cache # cache the file content for mounted directories or files
mq.topic.truncate # clear all data from a topic while preserving topic structure
remote.cache # comprehensive synchronization and caching between local and remote storage
remote.configure # remote storage configuration
remote.copy.local # copy local files to remote storage
remote.meta.sync # synchronize the local file meta data with the remote file metadata
remote.mount # mount remote storage and pull its metadata
remote.mount.buckets # mount all buckets in remote storage and pull its metadata
@@ -44,11 +55,18 @@ Type: "help <command>" for help on <command>. Most commands support "<command> -
s3.bucket.create # create a bucket with a given name
s3.bucket.delete # delete a bucket by a given name
s3.bucket.list # list all buckets
s3.bucket.lock # view or enable Object Lock for an S3 bucket
s3.bucket.owner # view or change the owner of an S3 bucket
s3.bucket.quota # set/remove/enable/disable quota for a bucket
s3.bucket.quota.enforce # check quota for all buckets, make the bucket read only if over the limit
s3.circuitBreaker # configure and apply s3 circuit breaker options for each bucket
s3.clean.uploads # clean up stale multipart uploads
s3.configure # configure and apply s3 options for each bucket
s3.policy # manage s3 policies
s3tables.bucket # manage s3tables table buckets
s3tables.namespace # manage s3tables namespaces
s3tables.table # manage s3tables tables
s3tables.tag # manage s3tables tags
unlock # unlock the cluster-wide lock
volume.balance # balance all volumes among volume servers
volume.check.disk # check all replicated volumes to find and fix inconsistencies. It is optional and resource intensive.
@@ -57,11 +75,13 @@ Type: "help <command>" for help on <command>. Most commands support "<command> -
volume.delete # delete a live volume from one volume server
volume.deleteEmpty # delete empty volumes from all volume servers
volume.fix.replication # add or remove replicas to volumes that are missing replicas or over-replicated
volume.fsck # check all volumes to find entries not used by the filer
volume.fsck # check all volumes to find entries not used by the filer. It is optional and resource intensive.
volume.grow # grow volumes
volume.list # list all volumes
volume.mark # Mark volume writable or readonly from one volume server
volume.mount # mount a volume from one volume server
volume.move # move a live volume from one volume server to another volume server
volume.scrub # scrubs volume contents on volume servers.
volume.tier.download # download the dat file of a volume from a remote tier
volume.tier.move # change a volume from one disk type to another
volume.tier.upload # upload the dat file of a volume to a remote tier