If you haven't gotten to this yet, I'll go ahead and jump on it.. let me know! Thanks- sage On Thu, 9 Aug 2012, Danny Kukawka wrote: > Remove btrfs specific keys and replace them by more generic > keys to be able to replace btrfs with e.g. xfs or ext4 easily. > > Add new key to define the osd fs type: 'fstype', which can get > defined in the [osd] section for all OSDs. > > Replace: > - 'btrfs devs' -> 'devs' > - 'btrfs path' -> 'fs path' > - 'btrfs options' -> 'fs options' > - mkcephfs: replace --mkbtrfs with --mkfs > - init-ceph: replace --btrfs with --fsmount, --nobtrfs > with --nofsmount, --btrfsumount with --fsumount > > Update documentation, manpage and example config files. > > Signed-off-by: Danny Kukawka <danny.kukawka@xxxxxxxxx> > --- > doc/man/8/mkcephfs.rst | 17 +++----- > man/mkcephfs.8 | 15 +++---- > src/ceph.conf.twoosds | 7 ++-- > src/init-ceph.in | 50 +++++++++++++--------- > src/mkcephfs.in | 60 +++++++++++++++++---------- > src/sample.ceph.conf | 15 ++++--- > src/test/cli/osdmaptool/ceph.conf.withracks | 3 +- > 7 Dateien ge?ndert, 95 Zeilen hinzugef?gt(+), 72 Zeilen entfernt(-) > > diff --git a/doc/man/8/mkcephfs.rst b/doc/man/8/mkcephfs.rst > index ddc378a..dd3fbd5 100644 > --- a/doc/man/8/mkcephfs.rst > +++ b/doc/man/8/mkcephfs.rst > @@ -70,20 +70,15 @@ Options > default is ``/etc/ceph/keyring`` (or whatever is specified in the > config file). > > -.. option:: --mkbtrfs > +.. option:: --mkfs > > - Create and mount the any btrfs file systems specified in the > - ceph.conf for OSD data storage using mkfs.btrfs. The "btrfs devs" > - and (if it differs from "osd data") "btrfs path" options must be > - defined. > + Create and mount any file system specified in the ceph.conf for > + OSD data storage using mkfs. The "devs" and (if it differs from > + "osd data") "fs path" options must be defined. > > **NOTE** Btrfs is still considered experimental. This option > - can ease some configuration pain, but is the use of btrfs is not > - required when ``osd data`` directories are mounted manually by the > - adminstrator. > - > - **NOTE** This option is deprecated and will be removed in a future > - release. > + can ease some configuration pain, but is not required when > + ``osd data`` directories are mounted manually by the adminstrator. > > .. option:: --no-copy-conf > > diff --git a/man/mkcephfs.8 b/man/mkcephfs.8 > index 8544a01..22a5335 100644 > --- a/man/mkcephfs.8 > +++ b/man/mkcephfs.8 > @@ -32,7 +32,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] > . > .SH SYNOPSIS > .nf > -\fBmkcephfs\fP [ \-c \fIceph.conf\fP ] [ \-\-mkbtrfs ] [ \-a, \-\-all\-hosts [ \-k > +\fBmkcephfs\fP [ \-c \fIceph.conf\fP ] [ \-\-mkfs ] [ \-a, \-\-all\-hosts [ \-k > \fI/path/to/admin.keyring\fP ] ] > .fi > .sp > @@ -111,19 +111,16 @@ config file). > .UNINDENT > .INDENT 0.0 > .TP > -.B \-\-mkbtrfs > -Create and mount the any btrfs file systems specified in the > -ceph.conf for OSD data storage using mkfs.btrfs. The "btrfs devs" > -and (if it differs from "osd data") "btrfs path" options must be > +.B \-\-mkfs > +Create and mount any file systems specified in the > +ceph.conf for OSD data storage using mkfs.*. The "devs" > +and (if it differs from "osd data") "fs path" options must be > defined. > .sp > \fBNOTE\fP Btrfs is still considered experimental. This option > -can ease some configuration pain, but is the use of btrfs is not > +can ease some configuration pain, but the use of this option is not > required when \fBosd data\fP directories are mounted manually by the > adminstrator. > -.sp > -\fBNOTE\fP This option is deprecated and will be removed in a future > -release. > .UNINDENT > .INDENT 0.0 > .TP > diff --git a/src/ceph.conf.twoosds b/src/ceph.conf.twoosds > index c0cfc68..05ca754 100644 > --- a/src/ceph.conf.twoosds > +++ b/src/ceph.conf.twoosds > @@ -67,7 +67,8 @@ > debug journal = 20 > log dir = /data/cosd$id > osd data = /mnt/osd$id > - btrfs options = "flushoncommit,usertrans" > + fs options = "flushoncommit,usertrans" > + fstype = btrfs > ; user = root > > ; osd journal = /mnt/osd$id/journal > @@ -75,8 +76,8 @@ > osd journal = "/dev/disk/by-path/pci-0000:05:02.0-scsi-6:0:0:0" > ; filestore max sync interval = 1 > > - btrfs devs = "/dev/disk/by-path/pci-0000:05:01.0-scsi-2:0:0:0" > -; btrfs devs = "/dev/disk/by-path/pci-0000:05:01.0-scsi-2:0:0:0 \ > + devs = "/dev/disk/by-path/pci-0000:05:01.0-scsi-2:0:0:0" > +; devs = "/dev/disk/by-path/pci-0000:05:01.0-scsi-2:0:0:0 \ > ; /dev/disk/by-path/pci-0000:05:01.0-scsi-3:0:0:0 \ > ; /dev/disk/by-path/pci-0000:05:01.0-scsi-4:0:0:0 \ > ; /dev/disk/by-path/pci-0000:05:01.0-scsi-5:0:0:0 \ > diff --git a/src/init-ceph.in b/src/init-ceph.in > index a8c5a29..32bcc9a 100644 > --- a/src/init-ceph.in > +++ b/src/init-ceph.in > @@ -100,8 +100,8 @@ docrun= > allhosts=0 > debug=0 > monaddr= > -dobtrfs=1 > -dobtrfsumount=0 > +dofsmount=1 > +dofsumount=0 > verbose=0 > > while echo $1 | grep -q '^-'; do # FIXME: why not '^-'? > @@ -130,14 +130,14 @@ case $1 in > shift > MON_ADDR=$1 > ;; > - --btrfs) > - dobtrfs=1 > + --fsmount) > + dofsmount=1 > ;; > - --nobtrfs) > - dobtrfs=0 > + --nofsmount) > + dofsmount=0 > ;; > - --btrfsumount) > - dobtrfsumount=1 > + --fsumount) > + dofsumount=1 > ;; > --conf | -c) > [ -z "$2" ] && usage_exit > @@ -222,9 +222,9 @@ for name in $what; do > > if echo $name | grep -q ^osd; then > get_conf osd_data "" "osd data" > - get_conf btrfs_path "$osd_data" "btrfs path" # mount point defaults so osd data > - get_conf btrfs_devs "" "btrfs devs" > - first_dev=`echo $btrfs_devs | cut '-d ' -f 1` > + get_conf fs_path "$osd_data" "fs path" # mount point defaults so osd data > + get_conf fs_devs "" "devs" > + first_dev=`echo $fs_devs | cut '-d ' -f 1` > fi > > # do lockfile, if RH > @@ -262,13 +262,25 @@ for name in $what; do > > cmd="$wrap $cmd $runmode" > > - if [ $dobtrfs -eq 1 ] && [ -n "$btrfs_devs" ]; then > + if [ $dofsmount -eq 1 ] && [ -n "$fs_devs" ]; then > get_conf pre_mount "true" "pre mount command" > - get_conf btrfs_opt "noatime" "btrfs options" > - [ -n "$btrfs_opt" ] && btrfs_opt="-o $btrfs_opt" > + get_conf fs_opt "noatime" "fs options" > + get_conf fs_type "" "fstype" > + > + if [ -z "$fs_type" ]; then > + echo No filesystem type defined! > + exit 0 > + fi > + > + [ -n "$fs_opt" ] && fs_opt="-o $fs_opt" > [ -n "$pre_mount" ] && do_cmd "$pre_mount" > - echo Mounting Btrfs on $host:$btrfs_path > - do_root_cmd "modprobe btrfs ; btrfs device scan || btrfsctl -a ; egrep -q '^[^ ]+ $btrfs_path' /proc/mounts || mount -t btrfs $btrfs_opt $first_dev $btrfs_path" > + > + if [ "$fs_type" == "btrfs" ]; then > + echo Mounting Btrfs on $host:$fs_path > + do_root_cmd "modprobe btrfs ; btrfs device scan || btrfsctl -a ; egrep -q '^[^ ]+ $fs_path' /proc/mounts || mount -t btrfs $fs_opt $first_dev $fs_path" > + else > + do_root_cmd "modprobe $fs_type ; egrep -q '^[^ ]+ $fs_path' /proc/mounts || mount -t $fs_type $fs_opt $first_dev $fs_path" > + fi > fi > echo Starting Ceph $name on $host... > mkdir -p $RUN_DIR > @@ -289,9 +301,9 @@ for name in $what; do > stop_daemon $name ceph-$type $pid_file > [ -n "$post_stop" ] && do_cmd "$post_stop" > [ -n "$lockfile" ] && [ "$?" -eq 0 ] && rm -f $lockfile > - if [ $dobtrfsumount -eq 1 ] && [ -n "$btrfs_devs" ]; then > - echo Unmounting Btrfs on $host:$btrfs_path > - do_root_cmd "umount $btrfs_path || true" > + if [ $dofsumount -eq 1 ] && [ -n "$fs_devs" ]; then > + echo Unmounting OSD volume on $host:$fs_path > + do_root_cmd "umount $fs_path || true" > fi > ;; > > diff --git a/src/mkcephfs.in b/src/mkcephfs.in > index c507709..492d4b6 100644 > --- a/src/mkcephfs.in > +++ b/src/mkcephfs.in > @@ -60,7 +60,7 @@ else > fi > > usage_exit() { > - echo "usage: $0 -a -c ceph.conf [-k adminkeyring] [--mkbtrfs]" > + echo "usage: $0 -a -c ceph.conf [-k adminkeyring] [--mkfs]" > echo " to generate a new ceph cluster on all nodes; for advanced usage see man page" > echo " ** be careful, this WILL clobber old data; check your ceph.conf carefully **" > exit > @@ -70,7 +70,7 @@ usage_exit() { > > > allhosts=0 > -mkbtrfs=0 > +mkfs=0 > preparemonmap=0 > prepareosdfs="" > initdaemon="" > @@ -130,8 +130,8 @@ case $1 in > preparemon=1 > manual_action=1 > ;; > - --mkbtrfs) > - mkbtrfs=1 > + --mkfs) > + mkfs=1 > ;; > --no-copy-conf) > nocopyconf=1 > @@ -306,21 +306,26 @@ if [ -n "$prepareosdfs" ]; then > > get_conf osd_data "/var/lib/ceph/osd/ceph-$id" "osd data" > get_conf osd_journal "$osd_data/journal" "osd journal" > - get_conf btrfs_path "$osd_data" "btrfs path" # mount point defaults so osd data > - get_conf btrfs_devs "" "btrfs devs" > + get_conf fs_path "$osd_data" "fs path" # mount point defaults so osd data > + get_conf fs_devs "" "devs" > + get_conf fs_type "" "fstype" > > - if [ -z "$btrfs_devs" ]; then > - echo "no btrfs devs defined for $name" > + if [ -z "$fs_devs" ]; then > + echo "no devs defined for $name" > + exit 0 > + fi > + if [ -z "$fs_type" ]; then > + echo "no filesystem type defined for $name" > exit 0 > fi > > - first_dev=`echo $btrfs_devs | cut '-d ' -f 1` > - get_conf btrfs_opt "noatime" "btrfs options" > - [ -n "$btrfs_opt" ] && btrfs_opt="-o $btrfs_opt" > + first_dev=`echo $fs_devs | cut '-d ' -f 1` > + get_conf fs_opt "noatime" "fs options" > + [ -n "$fs_opt" ] && fs_opt="-o $fs_opt" > get_conf osd_user "root" "user" > > - if [ -n "$osd_journal" ] && echo "$btrfs_devs" | grep -q -w "$osd_journal" ; then > - echo "ERROR: osd journal device ($osd_journal) also used by btrfs devs ($btrfs_devs)" > + if [ -n "$osd_journal" ] && echo "fs_devs" | grep -q -w "$osd_journal" ; then > + echo "ERROR: osd journal device ($osd_journal) also used by devs ($fs_devs)" > exit 1 > fi > > @@ -330,18 +335,27 @@ if [ -n "$prepareosdfs" ]; then > test -d $osd_journal || mkdir -p `dirname $osd_journal` > fi > > - umount $btrfs_path || true > - for f in $btrfs_devs ; do > + umount $fs_path || true > + for f in $fs_devs ; do > umount $f || true > done > > - modprobe btrfs || true > - mkfs.btrfs $btrfs_devs > - btrfs device scan || btrfsctl -a > - sync # seems to fix problems for some people... > - mount -t btrfs $btrfs_opt $first_dev $btrfs_path > - chown $osd_user $btrfs_path > - chmod +w $btrfs_path > + if [ "$fs_type" == "btrfs" ]; then > + modprobe btrfs || true > + mkfs.btrfs $fs_devs > + btrfs device scan || btrfsctl -a > + sync # seems to fix problems for some people... > + elif [ "$fs_type" == "xfs" ]; then > + modprobe xfs || true > + mkfs.xfs -f $fs_devs > + else > + modprobe $fs_type || true > + mkfs.$fs_type $fs_devs > + fi > + > + mount -t $fs_type $fs_opt $first_dev $fs_path > + chown $osd_user $fs_path > + chmod +w $fs_path > > exit 0 > fi > @@ -459,7 +473,7 @@ if [ $allhosts -eq 1 ]; then > fi > fi > > - if [ $mkbtrfs -eq 1 ] && [ "$type" = "osd" ]; then > + if [ $mkfs -eq 1 ] && [ "$type" = "osd" ]; then > do_root_cmd "$0 -d $rdir --prepare-osdfs $name" > fi > > diff --git a/src/sample.ceph.conf b/src/sample.ceph.conf > index 88f7f02..147777d 100644 > --- a/src/sample.ceph.conf > +++ b/src/sample.ceph.conf > @@ -131,27 +131,30 @@ > ;debug filestore = 20 > ;debug journal = 20 > > + ; The filesystem used on the volumes > + fstype = btrfs > + > [osd.0] > host = delta > > - ; if 'btrfs devs' is not specified, you're responsible for > + ; if 'devs' is not specified, you're responsible for > ; setting up the 'osd data' dir. if it is not btrfs, things > ; will behave up until you try to recover from a crash (which > ; usually fine for basic testing). > - btrfs devs = /dev/sdx > + devs = /dev/sdx > > ; If you want to specify some other mount options, you can do so. > ; The default values are rw,noatime > - ;btrfs options = rw,noatime > + ; options = rw,noatime > > [osd.1] > host = epsilon > - btrfs devs = /dev/sdy > + devs = /dev/sdy > > [osd.2] > host = zeta > - btrfs devs = /dev/sdx > + devs = /dev/sdx > > [osd.3] > host = eta > - btrfs devs = /dev/sdy > + devs = /dev/sdy > diff --git a/src/test/cli/osdmaptool/ceph.conf.withracks b/src/test/cli/osdmaptool/ceph.conf.withracks > index 1e14411..87b0716 100644 > --- a/src/test/cli/osdmaptool/ceph.conf.withracks > +++ b/src/test/cli/osdmaptool/ceph.conf.withracks > @@ -42,7 +42,8 @@ > keyring = /mnt/osd.$id/keyring > osd data = /mnt/osd.$id > osd journal = /dev/disk/by-label/osd.$id.journal > - btrfs devs = /dev/disk/by-label/osd.$id.data > + devs = /dev/disk/by-label/osd.$id.data > + fstype = btrfs > ; temp sage > debug osd = 20 > debug ms = 1 > -- > 1.7.10.4 > > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html