diff --git a/glustercli/cmd/legacy-volopts.go b/glustercli/cmd/legacy-volopts.go new file mode 100644 index 000000000..c5ff4db40 --- /dev/null +++ b/glustercli/cmd/legacy-volopts.go @@ -0,0 +1,421 @@ +package cmd + +var legacyVolumeOptions = map[string][]string{ + "debug.error-fops": {"error-gen.enable"}, + "features.timeout": {"quiesce.timeout"}, + "performance.enable-least-priority": {"io-threads.enable-least-priority"}, + "nfs.drc": {"server.nfs.drc"}, + "client.ssl": {"client.transport.socket.ssl-enabled"}, + "performance.md-cache-pass-through": {"md-cache.pass-through"}, + "storage.force-directory-mode": {"posix.force-directory-mode"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.own-cert": {"socket.ssl-own-cert"}, + "cluster.self-heal-readdir-size": {"replicate.self-heal-readdir-size"}, + "nfs.drc-size": {"server.nfs.drc-size"}, + "cluster.enable-shared-storage": {"glusterd.enable-shared-storage"}, + "features.ctr-sql-db-cachesize": {"changetimerecorder.sql-db-cachesize"}, + "debug.log-file": {"trace.log-file"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nfs.read-ahead": {"read-ahead.nfsperf"}, + "features.soft-timeout": {"quota.soft-timeout"}, + "performance.iot-pass-through": {"io-threads.pass-through"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.client-log-buf-size": {"io-stats.log-buf-size"}, + "diagnostics.latency-measurement": {"io-stats.latency-measurement"}, + "nfs.export-dirs": {"server.nfs3.export-dirs"}, + "performance.write-behind-window-size": {"write-behind.cache-size"}, + "storage.max-hardlinks": {"posix.max-hardlinks"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.client-io-threads": {"io-threads.perf"}, + "client.tcp-user-timeout": {"client.transport.tcp-user-timeout"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.brick-sys-log-level": {"io-stats.sys-log-level"}, + "features.shard-block-size": {"shard.shard-block-size"}, + "cluster.watermark-low": {"tier.watermark-low"}, + "diagnostics.stats-dnscache-ttl-sec": {"io-stats.ios-dnscache-ttl-sec"}, + "performance.cache-min-file-size": {"io-cache.min-file-size"}, + "cluster.background-self-heal-count": {"replicate.background-self-heal-count"}, + "storage.create-directory-mask": {"posix.create-directory-mask"}, + "cluster.read-freq-threshold": {"tier.read-freq-threshold"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.brick-log-flush-timeout": {"io-stats.log-flush-timeout"}, + "cluster.tier-mode": {"tier.tier-mode"}, + "performance.resync-failed-syncs-after-fsync": {"write-behind.resync-failed-syncs-after-fsync"}, + "diagnostics.fop-sample-buf-size": {"io-stats.ios-sample-buf-size"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.ca-list": {"socket.ssl-ca-list"}, + "nfs.port": {"server.nfs.port"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.certificate-depth": {"socket.ssl-cert-depth"}, + "features.uss": {"snapview-server.uss"}, + "features.cloudsync": {"cloudsync.cloudsync"}, + // TODO: Target option name starts with ! in glusterd1 + "auth.reject": {"server.server-auth"}, + "performance.cache-refresh-timeout": {"io-cache.cache-timeout"}, + // TODO: Target option name starts with ! in glusterd1 + "features.encryption": {"crypt.feat"}, + "features.trash-internal-op": {"trash.trash-internal-op"}, + "performance.cache-capability-xattrs": {"md-cache.cache-capability-xattrs"}, + "storage.fips-mode-rchecksum": {"posix.fips-mode-rchecksum"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nl-cache": {"nl-cache.perf"}, + "performance.nfs.flush-behind": {"write-behind.flush-behind"}, + "performance.lazy-open": {"open-behind.lazy-open"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.stat-prefetch": {"md-cache.perf"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.client-log-level": {"io-stats.client-log-level"}, + "server.tcp-user-timeout": {"server.transport.tcp-user-timeout"}, + "server.keepalive-interval": {"server.transport.socket.keepalive-interval"}, + "cluster.min-free-disk": {"distribute.min-free-disk"}, + "debug.error-failure": {"error-gen.failure"}, + "nfs.read-size": {"server.nfs3.read-size"}, + "cluster.lookup-optimize": {"distribute.lookup-optimize"}, + // TODO: Target option name starts with ! in glusterd1 + // TODO: Target option name starts with ! in glusterd1 + "cluster.heal-timeout": {"replicate.heal-timeout", "disperse.heal-timeout"}, + "features.expiry-time": {"bit-rot.expiry-time"}, + // TODO: Target option name starts with ! in glusterd1 + "features.sdfs": {"sdfs.features"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nfs.io-threads": {"io-threads.nfsperf"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.rpc-auth-unix": {"server.rpc-auth.auth-unix.*"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.rpc-auth-allow": {"server.rpc-auth.addr.*.allow"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.brick-log-format": {"io-stats.log-format"}, + "transport.keepalive": {"server.transport.socket.keepalive"}, + // TODO: Target option name starts with ! in glusterd1 + "cluster.nufa": {"distribute.nufa"}, + "diagnostics.dump-fd-stats": {"io-stats.dump-fd-stats"}, + "cluster.full-lock": {"replicate.full-lock"}, + "cluster.subvols-per-directory": {"distribute.directory-layout-spread"}, + "nfs.dynamic-volumes": {"server.nfs.dynamic-volumes"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.transport-type": {"server.nfs.transport-type"}, + "performance.nl-cache-pass-through": {"nl-cache.pass-through"}, + "nfs.rdirplus": {"server.nfs.rdirplus"}, + "performance.rda-low-wmark": {"readdir-ahead.rda-low-wmark"}, + "cluster.tier-demote-frequency": {"tier.tier-demote-frequency"}, + "features.barrier-timeout": {"barrier.barrier-timeout"}, + "features.scrub-freq": {"bit-rot.scrub-frequency"}, + "performance.cache-invalidation": {"quick-read.cache-invalidation", "md-cache.cache-invalidation"}, + "encryption.block-size": {"crypt.block-size"}, + "nfs.log-level": {"server.nfs.log-level"}, + "features.alert-time": {"quota.alert-time"}, + "nfs.server-aux-gids": {"server.nfs.server-aux-gids"}, + "performance.least-prio-threads": {"io-threads.least-prio-threads"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.open-behind": {"open-behind.perf"}, + "cluster.halo-max-latency": {"replicate.halo-max-latency"}, + "performance.iot-cleanup-disconnected-reqs": {"io-threads.cleanup-disconnected-reqs"}, + "network.compression.min-size": {"cdc.min-size"}, + "cluster.extra-hash-regex": {"distribute.extra-hash-regex"}, + "performance.nfs.strict-write-ordering": {"write-behind.strict-write-ordering"}, + "cluster.tier-max-mb": {"tier.tier-max-mb"}, + "performance.rda-cache-limit": {"readdir-ahead.rda-cache-limit"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.quick-read": {"quick-read.perf"}, + "cluster.weighted-rebalance": {"distribute.weighted-rebalance"}, + "storage.owner-gid": {"posix.brick-gid"}, + "performance.cache-ima-xattrs": {"md-cache.cache-ima-xattrs"}, + "cluster.tier-cold-compact-frequency": {"tier.tier-cold-compact-frequency"}, + "storage.health-check-timeout": {"posix.health-check-timeout"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.dh-param": {"socket.ssl-dh-param"}, + "cluster.data-self-heal-algorithm": {"replicate.data-self-heal-algorithm"}, + "cluster.halo-max-replicas": {"replicate.halo-max-replicas"}, + // TODO: Target option name starts with ! in glusterd1 + "features.fdl": {"fdl.fdl"}, + "features.barrier": {"barrier.barrier"}, + "cluster.lookup-unhashed": {"distribute.lookup-unhashed"}, + "features.leases": {"leases.leases"}, + "client.keepalive-interval": {"client.transport.socket.keepalive-interval"}, + "features.ctr_link_consistency": {"changetimerecorder.ctr_link_consistency"}, + "cluster.max-op-version": {"glusterd.max-op-version"}, + "cluster.watermark-hi": {"tier.watermark-hi"}, + // TODO: Target option name starts with ! in glusterd1 + "debug.error-gen": {"error-gen.debug"}, + "performance.nfs.write-behind-trickling-writes": {"write-behind.trickling-writes"}, + // TODO: Target option name starts with ! in glusterd1 + "auth.allow": {"server.server-auth"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nfs.stat-prefetch": {"md-cache.nfsperf"}, + "cluster.quorum-type": {"replicate.quorum-type"}, + "nfs.rpc-statd": {"server.nfs.rpc-statd"}, + "performance.readdir-ahead-pass-through": {"readdir-ahead.pass-through"}, + "features.quota": {"marker.quota"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.export-dir": {"server.nfs3.*.export-dir"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.write-behind": {"write-behind.perf"}, + "nfs.mount-udp": {"server.nfs.mount-udp"}, + "server.keepalive-time": {"server.transport.socket.keepalive-time"}, + // TODO: Target option name starts with ! in glusterd1 + "transport.address-family": {"server.address-family"}, + "nfs.mount-rmtab": {"server.nfs.mount-rmtab"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.cipher-list": {"socket.ssl-cipher-list"}, + "debug.random-failure": {"error-gen.random-failure"}, + "features.locks-notify-contention": {"locks.notify-contention"}, + "cluster.tier-compact": {"tier.tier-compact"}, + "cluster.force-migration": {"distribute.force-migration"}, + "features.locks-revocation-clear-all": {"locks.revocation-clear-all"}, + "performance.cache-max-file-size": {"io-cache.max-file-size"}, + "features.tag-namespaces": {"namespace.tag-namespaces"}, + "storage.gfid2path": {"posix.gfid2path"}, + "cluster.disperse-self-heal-daemon": {"disperse.self-heal-daemon"}, + "performance.force-readdirp": {"md-cache.force-readdirp"}, + "features.ctr_lookupheal_link_timeout": {"changetimerecorder.ctr_lookupheal_link_timeout"}, + "cluster.self-heal-window-size": {"replicate.data-self-heal-window-size"}, + "cluster.local-volume-name": {"nufa.local-volume-name"}, + "performance.open-behind-pass-through": {"open-behind.pass-through"}, + "features.cache-invalidation-timeout": {"upcall.cache-invalidation-timeout"}, + "diagnostics.stats-dump-interval": {"io-stats.ios-dump-interval"}, + "cluster.readdir-optimize": {"distribute.readdir-optimize"}, + "performance.strict-write-ordering": {"write-behind.strict-write-ordering"}, + "cluster.shd-max-threads": {"replicate.shd-max-threads"}, + "network.compression.window-size": {"cdc.window-size"}, + "debug.error-number": {"error-gen.error-no"}, + "cluster.data-self-heal": {"replicate.data-self-heal"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nfs.write-behind": {"write-behind.nfsperf"}, + "nfs.outstanding-rpc-limit": {"server.rpc.outstanding-rpc-limit"}, + "features.default-retention-period": {"worm.default-retention-period"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nfs.io-cache": {"io-cache.nfsperf"}, + "storage.linux-aio": {"posix.linux-aio"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.ec-curve": {"socket.ssl-ec-curve"}, + "storage.batch-fsync-mode": {"posix.batch-fsync-mode"}, + "cluster.op-version": {"glusterd.op-version"}, + "features.cache-invalidation": {"upcall.cache-invalidation"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.ports-insecure": {"server.rpc-auth.ports.*.insecure"}, + "network.compression.mem-level": {"cdc.mem-level"}, + "features.ctr_lookupheal_inode_timeout": {"changetimerecorder.ctr_lookupheal_inode_timeout"}, + "storage.force-create-mode": {"posix.force-create-mode"}, + "cluster.rebal-throttle": {"distribute.rebal-throttle"}, + "cluster.tier-query-limit": {"tier.tier-query-limit"}, + "storage.owner-uid": {"posix.brick-uid"}, + "features.retention-mode": {"worm.retention-mode"}, + "cluster.tier-max-files": {"tier.tier-max-files"}, + "storage.bd-aio": {"bd.bd-aio"}, + "server.ssl": {"server.transport.socket.ssl-enabled"}, + "performance.parallel-readdir": {"readdir-ahead.parallel-readdir"}, + "performance.nl-cache-timeout": {"nl-cache.nl-cache-timeout"}, + "cluster.tier-hot-compact-frequency": {"tier.tier-hot-compact-frequency"}, + "performance.flush-behind": {"write-behind.flush-behind"}, + "storage.reserve": {"posix.reserve"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.brick-log-level": {"io-stats.brick-log-level"}, + "network.tcp-window-size": {"client.tcp-window-size", "server.tcp-window-size"}, + "cluster.favorite-child-policy": {"replicate.favorite-child-policy"}, + "features.show-snapshot-directory": {"snapview-client.show-snapshot-directory"}, + "client.keepalive-count": {"client.transport.socket.keepalive-count"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.trusted-write": {"server.nfs3.*.trusted-write"}, + "nfs.nlm": {"server.nfs.nlm"}, + "performance.normal-prio-threads": {"io-threads.normal-prio-threads"}, + "nfs.addr-namelookup": {"server.rpc-auth.addr.namelookup"}, + "server.allow-insecure": {"server.rpc-auth-allow-insecure"}, + "features.record-counters": {"changetimerecorder.record-counters"}, + "features.hard-timeout": {"quota.hard-timeout"}, + // TODO: Target option name starts with ! in glusterd1 + "geo-replication.ignore-pid-check": {"marker.gsync-force-xtime", "marker.gsync-force-xtime"}, + "cluster.shd-wait-qlength": {"replicate.shd-wait-qlength"}, + "features.trash-max-filesize": {"trash.trash-max-filesize"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.client-log-flush-timeout": {"io-stats.log-flush-timeout"}, + "cluster.read-subvolume": {"replicate.read-subvolume"}, + "cluster.rebalance-stats": {"distribute.rebalance-stats"}, + "cluster.granular-entry-heal": {"replicate.granular-entry-heal"}, + "cluster.lock-migration": {"distribute.lock-migration"}, + "debug.include-ops": {"trace.include-ops"}, + "cluster.brick-multiplex": {"glusterd.brick-multiplex"}, + "features.bitrot": {"bit-rot.bitrot"}, + "performance.aggregate-size": {"write-behind.aggregate-size"}, + "performance.io-cache-pass-through": {"io-cache.pass-through"}, + "storage.gfid2path-separator": {"posix.gfid2path-separator"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.rpc-auth-reject": {"server.rpc-auth.addr.*.reject"}, + "performance.read-after-open": {"open-behind.read-after-open"}, + "cluster.halo-enabled": {"replicate.halo-enabled"}, + "features.locks-monkey-unlocking": {"locks.monkey-unlocking"}, + // TODO: Target option name starts with ! in glusterd1 + "features.shard": {"shard.shard"}, + "storage.health-check-interval": {"posix.health-check-interval"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.volume-access": {"server.nfs3.*.volume-access"}, + "performance.io-thread-count": {"io-threads.thread-count"}, + "features.locks-notify-contention-delay": {"locks.notify-contention-delay"}, + "cluster.read-hash-mode": {"replicate.read-hash-mode"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.client-sys-log-level": {"io-stats.sys-log-level"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.rpc-auth-null": {"server.rpc-auth.auth-null.*"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.read-ahead": {"read-ahead.perf"}, + "cluster.tier-max-promote-file-size": {"tier.tier-max-promote-file-size"}, + "nfs.acl": {"server.nfs.acl"}, + "cluster.quorum-reads": {"replicate.quorum-reads"}, + "cluster.dht-xattr-name": {"distribute.xattr-name"}, + "performance.high-prio-threads": {"io-threads.high-prio-threads"}, + "client.own-thread": {"client.transport.socket.own-thread"}, + "cluster.data-change-log": {"replicate.data-change-log"}, + "encryption.master-key": {"crypt.master-key"}, + "performance.nl-cache-limit": {"nl-cache.nl-cache-limit"}, + "features.locks-revocation-max-blocked": {"locks.revocation-max-blocked"}, + "performance.low-prio-threads": {"io-threads.low-prio-threads"}, + // TODO: Target option name starts with ! in glusterd1 + "cluster.jbr": {"jbr.jbr"}, + // TODO: Target option name starts with ! in glusterd1 + "geo-replication.indexing": {"marker.xtime", "marker.xtime"}, + "features.lease-lock-recall-timeout": {"leases.lease-lock-recall-timeout"}, + "nfs.register-with-portmap": {"server.rpc.register-with-portmap"}, + "cluster.server-quorum-type": {"glusterd.server-quorum-type"}, + "cluster.localtime-logging": {"glusterd.localtime-logging"}, + "performance.read-ahead-pass-through": {"read-ahead.pass-through"}, + "features.trash-eliminate-path": {"trash.trash-eliminate-path"}, + "cluster.quorum-count": {"replicate.quorum-count"}, + "network.compression.debug": {"cdc.debug"}, + "performance.cache-swift-metadata": {"md-cache.cache-swift-metadata"}, + "performance.md-cache-timeout": {"md-cache.md-cache-timeout"}, + "features.auto-commit-period": {"worm.auto-commit-period"}, + "features.inode-quota": {"marker.inode-quota"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.nfs.quick-read": {"quick-read.nfsperf"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.client-logger": {"io-stats.logger"}, + "features.worm-files-deletable": {"worm.worm-files-deletable"}, + "features.read-only": {"read-only.read-only"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.private-key": {"socket.ssl-private-key"}, + "performance.nfs.write-behind-window-size": {"write-behind.cache-size"}, + "debug.log-history": {"trace.log-history"}, + "features.worm-file-level": {"worm.worm-file-level"}, + "cluster.switch-pattern": {"switch.pattern.switch.case"}, + "performance.cache-priority": {"io-cache.priority"}, + "storage.xattr-user-namespace-mode": {"posix.xattr-user-namespace-mode"}, + "cluster.consistent-metadata": {"replicate.consistent-metadata"}, + "cluster.eager-lock": {"replicate.eager-lock"}, + "features.scrub-throttle": {"bit-rot.scrub-throttle"}, + "cluster.metadata-change-log": {"replicate.metadata-change-log"}, + "nfs.auth-cache-ttl-sec": {"server.nfs.auth-cache-ttl-sec"}, + "debug.exclude-ops": {"trace.exclude-ops"}, + "cluster.max-bricks-per-process": {"glusterd.max-bricks-per-process"}, + "cluster.tier-pause": {"tier.tier-pause"}, + "client.bind-insecure": {"client.client-bind-insecure"}, + "cluster.server-quorum-ratio": {"glusterd.server-quorum-ratio"}, + "cluster.entry-self-heal": {"replicate.entry-self-heal"}, + "cluster.metadata-self-heal": {"replicate.metadata-self-heal"}, + "performance.rda-high-wmark": {"readdir-ahead.rda-high-wmark"}, + "network.frame-timeout": {"client.frame-timeout"}, + "nfs.export-volumes": {"server.nfs3.export-volumes"}, + // TODO: Target option name starts with ! in glusterd1 + "cluster.self-heal-daemon": {"replicate.self-heal-daemon"}, + "server.own-thread": {"server.transport.socket.own-thread"}, + "network.ping-timeout": {"client.ping-timeout"}, + "nfs.event-threads": {"server.nfs.event-threads"}, + "features.limit-usage": {"quota.limit-set"}, + "cluster.choose-local": {"replicate.choose-local"}, + "cluster.randomize-hash-range-by-gfid": {"distribute.randomize-hash-range-by-gfid"}, + "nfs.exports-auth-enable": {"server.nfs.exports-auth-enable"}, + "diagnostics.count-fop-hits": {"io-stats.count-fop-hits"}, + "performance.read-ahead-page-count": {"read-ahead.page-count"}, + "nfs.auth-refresh-interval-sec": {"server.nfs.auth-refresh-interval-sec"}, + "server.outstanding-rpc-limit": {"server.rpc.outstanding-rpc-limit"}, + "config.gfproxyd": {"configuration.gfproxyd"}, + "features.failover-hosts": {"quiesce.failover-hosts"}, + "cluster.heal-wait-queue-length": {"replicate.heal-wait-queue-length"}, + "performance.iot-watchdog-secs": {"io-threads.watchdog-secs"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.brick-logger": {"io-stats.logger"}, + "network.remote-dio": {"client.filter-O_DIRECT"}, + "transport.listen-backlog": {"server.transport.listen-backlog"}, + "features.quota-deem-statfs": {"quota.deem-statfs"}, + "client.keepalive-time": {"client.transport.socket.keepalive-time"}, + "cluster.read-subvolume-index": {"replicate.read-subvolume-index"}, + "cluster.min-free-inodes": {"distribute.min-free-inodes"}, + // TODO: Target option name starts with ! in glusterd1 + "ssl.crl-path": {"socket.ssl-crl-path"}, + "diagnostics.fop-sample-interval": {"io-stats.ios-sample-interval"}, + "cluster.readdir-failover": {"replicate.readdir-failover"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.disable": {"server.nfs-disable"}, + "storage.create-mask": {"posix.create-mask"}, + "cluster.halo-min-replicas": {"replicate.halo-min-replicas"}, + "cluster.rsync-hash-regex": {"distribute.rsync-hash-regex"}, + // TODO: Target option name starts with ! in glusterd1 + "cluster.switch": {"distribute.switch"}, + "performance.rda-request-size": {"readdir-ahead.rda-request-size"}, + "features.scrub": {"bit-rot.scrubber"}, + "diagnostics.stats-dump-format": {"io-stats.ios-dump-format"}, + // TODO: Target option name starts with ! in glusterd1 + "config.transport": {"glusterd.config"}, + "nfs.readdir-size": {"server.nfs3.readdir-size"}, + "storage.build-pgfid": {"posix.update-link-count-parent"}, + "nfs.write-size": {"server.nfs3.write-size"}, + "performance.xattr-cache-list": {"md-cache.xattr-cache-list"}, + "features.worm": {"worm.worm"}, + "cluster.locking-scheme": {"replicate.locking-scheme"}, + "features.selinux": {"selinux.selinux"}, + "storage.batch-fsync-delay-usec": {"posix.batch-fsync-delay-usec"}, + "cluster.use-compound-fops": {"replicate.use-compound-fops"}, + "cluster.stripe-coalesce": {"stripe.coalesce"}, + "cluster.write-freq-threshold": {"tier.write-freq-threshold"}, + // TODO: Target option name starts with ! in glusterd1 + "debug.delay-gen": {"delay-gen.debug"}, + "encryption.data-key-size": {"crypt.data-key-size"}, + "nfs.mem-factor": {"server.nfs.mem-factor"}, + "network.compression.compression-level": {"cdc.compression-level"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.brick-log-buf-size": {"io-stats.log-buf-size"}, + "features.ctr-record-metadata-heat": {"changetimerecorder.ctr-record-metadata-heat"}, + "performance.nfs.strict-o-direct": {"write-behind.strict-O_DIRECT"}, + "features.trash-dir": {"trash.trash-dir"}, + // TODO: Target option name starts with ! in glusterd1 + "diagnostics.client-log-format": {"io-stats.log-format"}, + // TODO: Target option name starts with ! in glusterd1 + "network.compression": {"cdc.feat"}, + "performance.write-behind-trickling-writes": {"write-behind.trickling-writes"}, + "storage.node-uuid-pathinfo": {"posix.node-uuid-pathinfo"}, + "features.snapshot-directory": {"snapview-client.snapshot-directory"}, + "cluster.halo-shd-max-latency": {"replicate.halo-shd-max-latency"}, + "features.trash": {"trash.trash"}, + "cluster.tier-promote-frequency": {"tier.tier-promote-frequency"}, + "features.locks-revocation-secs": {"locks.revocation-secs"}, + "performance.strict-o-direct": {"write-behind.strict-O_DIRECT"}, + "nfs.enable-ino32": {"server.nfs.enable-ino32"}, + "features.ctr-sql-db-wal-autocheckpoint": {"changetimerecorder.sql-db-wal-autocheckpoint"}, + "features.ctr-enabled": {"changetimerecorder.ctr-enabled"}, + "cluster.post-op-delay-secs": {"replicate.post-op-delay-secs"}, + "cluster.stripe-block-size": {"stripe.block-size"}, + // TODO: Target option name starts with ! in glusterd1 + "debug.trace": {"trace.debug"}, + "network.inode-lru-limit": {"server.inode-lru-limit"}, + "cluster.halo-nfsd-max-latency": {"replicate.halo-nfsd-max-latency"}, + // TODO: Target option name starts with ! in glusterd1 + "config.memory-accounting": {"glusterd.config"}, + // TODO: Target option name starts with ! in glusterd1 + "nfs.trusted-sync": {"server.nfs3.*.trusted-sync"}, + "performance.cache-size": {"io-cache.cache-size", "quick-read.cache-size"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.readdir-ahead": {"readdir-ahead.perf"}, + "performance.md-cache-statfs": {"md-cache.md-cache-statfs"}, + // TODO: Target option name starts with ! in glusterd1 + "performance.io-cache": {"io-cache.perf"}, + "performance.qr-cache-timeout": {"quick-read.cache-timeout"}, + "performance.cache-samba-metadata": {"md-cache.cache-samba-metadata"}, + "server.keepalive-count": {"server.transport.socket.keepalive-count"}, + "cluster.strict-readdir": {"replicate.strict-readdir"}, + "features.default-soft-limit": {"quota.default-soft-limit"}, + "performance.nl-cache-positive-entry": {"nl-cache.nl-cache-positive-entry"}, + "cluster.entry-change-log": {"replicate.entry-change-log"}, + "dht.force-readdirp": {"distribute.use-readdirp"}, + "cluster.ensure-durability": {"replicate.ensure-durability"}, + // TODO: Target option name starts with ! in glusterd1 + "auth.ssl-allow": {"server.ssl-allow"}, + "cluster.jbr.quorum-percent": {"jbr.quorum-percent"}, +} diff --git a/glustercli/cmd/volume-set.go b/glustercli/cmd/volume-set.go index eb68d33aa..4fbb23bdd 100644 --- a/glustercli/cmd/volume-set.go +++ b/glustercli/cmd/volume-set.go @@ -68,6 +68,14 @@ func volumeOptionJSONHandler(cmd *cobra.Command, volname string, options []strin vopt := make(map[string]string) for op, val := range options { if op%2 == 0 { + // If exists in legacy list, send new name(s) to glusterd + newvals, legacyOpt := legacyVolumeOptions[val] + if legacyOpt { + for _, v := range newvals { + vopt[v] = options[op+1] + } + continue + } vopt[val] = options[op+1] } }