Hide Forgot
[Migrated from RT] - ticket 753 [http://support.gluster.com/rt/Ticket/Display.html?id=753] Sun Feb 01 01:21:44 2009 guru - Ticket created Latest version as of now: glusterfs 2.0.0 qa14/881 I worked with Du and was able to finish a few translators. The idea is to have spec-file snippets in the documentation which could be copy-pasted onto user spec files. The snippets need to be complete with all the options of the particular translator (so that one needs to worry only about the values for an option and not hunt for the option itself in the user docs). Another concern is that the user documentation (and all other documentation) needs to be in a user frienly format (read .doc) rather than in the tex family. Given below is what I am planning to include in the documentation. I have marked comments/concerns with "???" and numbered them for further follow up. I request all of you to take a look and give me feedback. I will conclude the activity with the remaining translators next week. ======================================================================= volume replicate type cluster/replicate ## option read-subvolume <SUBVOLUME> ## option favorite-child <SUBVOLUME> option data-self-heal on option metadata-self-heal on option entry-self-heal on option data-change-log on option metadata-change-log off option entry-change-log on option data-lock-server-count 1 option metadata-lock-server-count 0 option entry-lock-server-count 1 ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume distribute type cluster/distribute option lookup-unhashed off ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume ha type cluster/ha ## option preferred-subvolume <INDEX> ??? ??? (1) Why index and why not the subvolume name itself? ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume stripe type cluster/stripe option use-xattr yes option block-size *:128KB ??? default pattern. default value ??? (2) Takes just size as valid argument. Why not insist on correct ??? <PATTERN>:<SIZE> (ie dont assume implicit * for pattern) ??? Also, why 128 KB? With higher bandwidths, cant we increase? ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume unify type cluster/unify ## option scheduler <SCHEDULER> ## option namespace <SUBVOLUME> option self-heal foreground option optimist off ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume unify-nufa type cluster/unify option scheduler nufa ## option namespace <SUBVOLUME> option optimist off option self-heal foreground ??? (3) INITIALISATION of free disk, disk usage, disk size, disk speed, write usage, read usage, nr files, nr clients ??? (4) alu_limits.total_disk_size.default is not taken as option from user (100%) option scheduler.alu.order ??? (5) ??? (5) What is the default value? option scheduler.alu.disk-usage.entry-threshold 1GB option scheduler.alu.disk-usage.exit-threshold 512MB option scheduler.alu.write-usage.entry-threshold 25 ??? (6) ??? (6) 25 what? Percentage? Is it not a good idea to insist on explicitly ??? mentioning the unit for any option - %,s,KB etc option scheduler.alu.write-usage.exit-threshold 5 ??? (7) ??? (7) See above option scheduler.alu.read-usage.entry-threshold 25 ??? (8) ??? (8) See above option scheduler.alu.read-usage.exit-threshold 5 ??? (9) ??? (9) See above option scheduler.alu.open-files-usage.entry-threshold 1000 option scheduler.alu.open-files-usage.exit-threshold 100 ## option scheduler.read-only-subvolumes <SUBVOLUME>,.. ??? (10) ??? (10) The option name is not consistent. Should be scheduler.alu.<OPTION> option scheduler.refresh-interval 5 ??? (11) ??? (11) See above option scheduler.limits.min-free-disk 0 ??? (12) ??? (12) See above option scheduler.alu.stat-refresh.num-file-create 5 ??? (13) Unit? ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume unify-nufa type cluster/unify option scheduler nufa ## option namespace <SUBVOLUME> option optimist off option self-heal foreground ??? (14) options should be named scheduler.nufa.<> option scheduler.refresh-interval 30 option scheduler.limits.min-free-disk 15 ## option scheduler.local-volume-name <SUBVOLUME> ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume unify-rr type cluster/unify option scheduler rr ## option namespace <SUBVOLUME> option optimist off option self-heal foreground ??? (15) options should be named scheduler.random.<> option scheduler.refresh-interval 10 option scheduler.limits.min-free-disk 15% ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume unify-rr type cluster/unify option scheduler rr ## option namespace <SUBVOLUME> option optimist off option self-heal foreground ??? (16) options should be named scheduler.rr.<> option scheduler.limits.min-free-disk 15 option scheduler.refresh-interval 10 option scheduler.read-only-subvolumes ??? (17) ??? (17) What does this do? What are the defaults? ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume unify-switch type cluster/unify option scheduler switch ## option namespace <SUBVOLUME> option optimist off option self-heal foreground ??? (18) options should be named scheduler.switch.<> ## <UNIFY_OPTIONS> ## option scheduler.read-only-subvolumes ??? (19) ??? (19) What does this do? What are the defaults? ## option scheduler.local-volume-name <SUBVOLUME> ## option scheduler.switch.case <PATTERN1:subvolume1,subvolume2,subvolume3>;.. ## subvolumes <SUBVOLUME1>,<SUBVOLUME2>,.. end-volume volume trace type debug/trace ??? (20) List of FOPS (to be mentioned in doc): ??? STAT READLINK MKNOD MKDIR UNLINK RMDIR SYMLINK RENAME LINK CHMOD CHOWN TRUNCATE OPEN READ WRITE STATFS FLUSH FSYNC SETXATTR GETXATTR REMOVEXATTR OPENDIR GETDENTS FSYNCDIR ACCESS CREATE FTRUNCATE FSTAT LK UTIMENS FCHMOD FCHOWN LOOKUP SETDENTS READDIR INODELK FINODELK ENTRYLK FENTRYLK CHECKSUM XATTROP ## option include-ops <FOPS> ## option exclude-ops <FOPS> ## subvolumes <SUBVOLUME>,.. end-volume volume rot-13 type encryption/rot-13 option encrypt-write yes option decrypt-read yes ## subvolumes <SUBVOLUME>,.. end-volume volume filter type features/filter ??? (21) wiki filter example wrong option root-squashing disabled option read-only off ## option fixed-uid <UID> ??? option not used if not mentioned ## option fixed-gid <GID> ??? option not used if not mentioned ## option translate-uid <FROM_UID-TO_UID=UID>,.. ## option translate-gid <FROM_GID-TO_GID=GID>,.. ## option filter-uid <FROM_UID-TO_UID>,.. ## option filter-gid <FROM_UID-TO_UID>,.. ## subvolumes <SUBVOLUME>,.. end-volume volume locks type features/locks option mandatory-locks off ## subvolumes <SUBVOLUME>,.. end-volume volume path-convertor type features/path-convertor ??? (22) spelling mistake in convert'o'r. should be converter ??? (23) xlator code incomplete option start-offset 0 option end-offset 0 ??? (24) Wrong default allowed range is 1 - 4096 ## option replace-with <> ??? (25) Not clear how this works ## subvolumes <SUBVOLUME>,.. end-volume volume quota type features/quota option min-free-disk-limit 0 option refresh-interval 20 ??? (26) 20s in case min-free-disk-limit is given ??? (26) Make clear in documentation. Also units. option disk-usage-limit 0 ## subvolumes <SUBVOLUME>,.. end-volume volume trash type features/trash option trash-dir /.trashcan ??? (27) better renamed as trashdir??? ??? (27) Think about consistency - trashdir vs trashcan ## subvolumes <SUBVOLUME>,.. end-volume volume fuse type mount/fuse option direct-io-mode enabled option macfuse-local off ## option mountpoint <MOUNTPOINT> option attribute-timeout 1 option entry-timeout 1 ## subvolumes <SUBVOLUME>,.. end-volume -------------------------------------------------------------------------------- # Sat Feb 07 10:51:22 2009 guru - Correspondence added The remaining translators (bdb has been excluded for now): volume io-cache type performance/io-cache ## option priority <PATTERN>:<PRIORITY> # filename_expansion:number option cache-timeout # 0 - 60s option cache-size 32mb # 4mb - 6gb option page-size 128kb # 16kb - 8mb end-volume volume io-threads type performance/io-threads option thread-count 1 # 1 - 32 end-volume volume read-ahead type performance/read-ahead option force-atime-update off option page-size 256kb # 64kb - 2mb option page-count 2 # 1 - 16 end-volume volume symlink-cache type performance/symlink-cache end-volume volume write-behind type performance/write-behind option flush-behind off option block-size 0 # 128kb - 4mb option cache-size 0 # 512kb - 1gb ??? (28) Default value out of range ??? (28) Default/Range needs to be fixed option disable-for-first-nbytes 1 option enable-O_SYNC off end-volume volume client type protocol/client ## option username <USERNAME> ## option password <PASSWORD> ## option remote-host <HOSTNAME> ## option remote-subvolume <SUBVOLUME> option transport-timeout 42 # 5 - 1013 option ping-timeout 10 # 5 - 1013 option transport-type socket # (socket, ib-verbs), (tcp, socket, ib-verbs, unix, ib-sdp, tcp/client, ib-verbs/client) end-volume volume server type protocol/server option transport-type socket ## option volume-filename.<KEY> <PATH> option inode-lru-limit 1024 option client-volume-filename /CONFDIR/glusterfs-client.vol end-volume volume client-socket type protocol/client ## option username <USERNAME> ## option password <PASSWORD> ## option remote-host <HOSTNAME> ## option remote-subvolume <SUBVOLUME> option transport-timeout 42 # 5 - 1013 option ping-timeout 10 # 5 - 1013 option transport-type socket option transport.socket.address-family inet # (inet, inet6, inet/inet6, inet6/inet, unix, inet-sdp) option transport.socket.remote-port ??? (29) do we need transport.socket? ??? (29) Why not "option remote-port <PORT>" ## option transport.socket.connect-path <PATH> ## option transport.socket.bind-path <PATH> end-volume volume server-socket type protocol/server option transport-type socket ## option volume-filename.<KEY> <PATH> option inode-lru-limit 1024 option client-volume-filename /CONFDIR/glusterfs-client.vol option transport-type socket option transport.socket.address-family inet # (inet, inet6, inet/inet6, inet6/inet, unix, inet-sdp) option transport.socket.remote-port option transport.socket.bind-address localhost option transport.socket.listen-port 6996 ## option transport.socket.listen-path <PATH> end-volume volume client-ib-verbs type protocol/client ## option username <USERNAME> ## option password <PASSWORD> ## option remote-host <HOSTNAME> ## option remote-subvolume <SUBVOLUME> option transport-timeout 42 # 5 - 1013 option ping-timeout 10 # 5 - 1013 option transport-type ib-verbs option transport.ib-verbs.address-family inet # (inet, inet6, inet/inet6, inet6/inet, unix, inet-sdp) option transport.ib-verbs.mtu 2048 option transport.ib-verbs.port 1 # 1 - 4 ## option transport.ib-verbs.device-name <DEVICE> # Default: first available device option transport.ib-verbs.work-request-send-size 1048576 ??? (30) Type is INT not SIZE. (1mb default) ??? (30) Either rename option name or change input type option transport.ib-verbs.work-request-recv-size 1048576 option transport.ib-verbs.work-request-send-count 16 option transport.ib-verbs.work-request-recv-count 16 option transport.ib-verbs.remote-port 6996 ## option transport.ib-verbs.connect-path <PATH> ??? (31) ??? (31) Does PATH make sense for ib-verbs? ## option transport.ib-verbs.bind-path <PATH> ??? (32) ??? (32) Does PATH make sense for ib-verbs? ## option transport.ib-verbs.listen-path <PATH> ??? (33) ??? (33) Does PATH make sense for ib-verbs? end-volume volume server-ib-verbs type protocol/server option transport-type socket option volume-filename.<KEY> <PATH> option inode-lru-limit 1024 option client-volume-filename /CONFDIR/glusterfs-client.vol option transport-type ib-verbs option transport.ib-verbs.address-family inet # (inet, inet6, inet/inet6, inet6/inet, unix, inet-sdp) option transport.ib-verbs.mtu 2048 option transport.ib-verbs.port 1 # 1 - 4 ## option transport.ib-verbs.device-name <DEVICE> # Default: first available device option transport.ib-verbs.work-request-send-size 1048576 option transport.ib-verbs.work-request-recv-size 1048576 option transport.ib-verbs.work-request-send-count 16 option transport.ib-verbs.work-request-recv-count 16 option transport.ib-verbs.listen-port 6996 ## option transport.ib-verbs.listen-path <PATH> ??? (34) ??? (34) Does PATH make sense for ib-verbs? end-volume volume posix type storage/posix option o-direct disabled ## option directory <DIRECTORY> option export-statfs-size enabled option mandate-attribute enabled ??? (35) "mandate-xattr" used in code ??? (35) The code is inconsistent with the option name end-volume -------------------------------------------------------------------------------- # Mon Apr 13 16:10:14 2009 gowda - Correspondence added Shehjar, Please put all the translator options into one single file, with relevant comments and post the volume specification file to this ticket. The volume specification files should also go into the source repository and the wiki documentation. -- gowda
I am closing this because we now have some pretty good documentation which does a better job than I ever will for this bug.