Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-7718

lfs getstripe does not work on bind mount

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.9.0
    • Lustre 2.8.0
    • 3
    • 9223372036854775807

    Description

      Found that lfs getstripe on lustre bind mount fails to return the attributes.

      Here are the steps to reproduce the problem.

      /mnt/lustre is lustre mount point

      1. mkdir /mnt/lustre/dir
      1. mount --bind /mnt/lustre /home/bind/
      1. ls /home/bind/
        dir
      1. lfs getstripe /home/bind//dir/
        /home/bind//dir/
        can't find fs root for '/home/bind/dir': -19
        Cannot determine default stripe count.: No such device (19)
        can't find fs root for '/home/bind/dir': -19
        Cannot determine default stripe size.: No such device (19)
        stripe_count: stripe_size: stripe_offset: -1

      Attachments

        Activity

          [LU-7718] lfs getstripe does not work on bind mount

          Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/18195/
          Subject: LU-7718 utils: lfs getstripe does not work on bind mount
          Project: fs/lustre-release
          Branch: master
          Current Patch Set:
          Commit: 7e41081c512afcb883582e9d9c24cd04e77d0b27

          gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/18195/ Subject: LU-7718 utils: lfs getstripe does not work on bind mount Project: fs/lustre-release Branch: master Current Patch Set: Commit: 7e41081c512afcb883582e9d9c24cd04e77d0b27

          This behavior is observed because of get_root_path() in which mount point details are obtained going through /etc/mtab which does not list original mount type and fsname (lustre in this case) of bind mount point.
          i.e

          # cat /etc/mtab 
          /dev/mapper/VolGroup-lv_root / ext4 rw 0 0
          proc /proc proc rw 0 0
          sysfs /sys sysfs rw 0 0
          devpts /dev/pts devpts rw,gid=5,mode=620 0 0
          tmpfs /dev/shm tmpfs rw 0 0
          /dev/sda1 /boot ext4 rw 0 0
          none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
          gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev 0 0
          sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
          /home/build/upstream/lustre-release/lustre/utils/mount.lustre /sbin/mount.lustre none rw,bind 0 0
          /dev/loop0 /mnt/mds1 lustre rw,loop=/dev/loop0 0 0
          /dev/loop1 /mnt/ost1 lustre rw,loop=/dev/loop1 0 0
          /dev/loop2 /mnt/ost2 lustre rw,loop=/dev/loop2 0 0
          cli-4@tcp:/lustre /mnt/lustre lustre rw,user_xattr,flock 0 0          =============> lustre mount
          /mnt/lustre /home/bind none rw,bind 0 0                                    =============> lustre bind mount not showing original mount info
          
          

          /proc/mounts is useful in this case

          # cat /proc/mounts 
          rootfs / rootfs rw 0 0
          proc /proc proc rw,relatime 0 0
          sysfs /sys sysfs rw,relatime 0 0
          devtmpfs /dev devtmpfs rw,relatime,size=1337872k,nr_inodes=334468,mode=755 0 0
          devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
          tmpfs /dev/shm tmpfs rw,relatime 0 0
          /dev/mapper/VolGroup-lv_root / ext4 rw,relatime,barrier=1,data=ordered 0 0
          /proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
          /dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
          none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
          cgroup /cgroup/cpuset cgroup rw,relatime,cpuset 0 0
          cgroup /cgroup/cpu cgroup rw,relatime,cpu 0 0
          cgroup /cgroup/cpuacct cgroup rw,relatime,cpuacct 0 0
          cgroup /cgroup/memory cgroup rw,relatime,memory 0 0
          cgroup /cgroup/devices cgroup rw,relatime,devices 0 0
          cgroup /cgroup/freezer cgroup rw,relatime,freezer 0 0
          cgroup /cgroup/net_cls cgroup rw,relatime,net_cls 0 0
          cgroup /cgroup/blkio cgroup rw,relatime,blkio 0 0
          /etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=1625,timeout=300,minproto=5,maxproto=5,indirect 0 0
          -hosts /net autofs rw,relatime,fd=13,pgrp=1625,timeout=300,minproto=5,maxproto=5,indirect 0 0
          gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=0,group_id=0 0 0
          sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
          /dev/mapper/VolGroup-lv_root /sbin/mount.lustre ext4 rw,relatime,barrier=1,data=ordered 0 0
          /dev/loop0 /mnt/mds1 lustre ro 0 0
          /dev/loop1 /mnt/ost1 lustre ro 0 0
          /dev/loop2 /mnt/ost2 lustre ro 0 0
          192.168.56.104@tcp:/lustre /mnt/lustre lustre rw,flock,user_xattr 0 0   ===============> lustre mount 
          192.168.56.104@tcp:/lustre /home/bind lustre rw,flock,user_xattr 0 0  ===============> lustre bind mount 
          
          

          Patch for this fix can be tracked at http://review.whamcloud.com/#/c/18195/

          vinayakh Vinayak (Inactive) added a comment - This behavior is observed because of get_root_path() in which mount point details are obtained going through /etc/mtab which does not list original mount type and fsname (lustre in this case) of bind mount point. i.e # cat /etc/mtab /dev/mapper/VolGroup-lv_root / ext4 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs rw 0 0 /dev/sda1 /boot ext4 rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0 /home/build/upstream/lustre-release/lustre/utils/mount.lustre /sbin/mount.lustre none rw,bind 0 0 /dev/loop0 /mnt/mds1 lustre rw,loop=/dev/loop0 0 0 /dev/loop1 /mnt/ost1 lustre rw,loop=/dev/loop1 0 0 /dev/loop2 /mnt/ost2 lustre rw,loop=/dev/loop2 0 0 cli-4@tcp:/lustre /mnt/lustre lustre rw,user_xattr,flock 0 0 =============> lustre mount /mnt/lustre /home/bind none rw,bind 0 0 =============> lustre bind mount not showing original mount info /proc/mounts is useful in this case # cat /proc/mounts rootfs / rootfs rw 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 devtmpfs /dev devtmpfs rw,relatime,size=1337872k,nr_inodes=334468,mode=755 0 0 devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /dev/shm tmpfs rw,relatime 0 0 /dev/mapper/VolGroup-lv_root / ext4 rw,relatime,barrier=1,data=ordered 0 0 /proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0 /dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0 cgroup /cgroup/cpuset cgroup rw,relatime,cpuset 0 0 cgroup /cgroup/cpu cgroup rw,relatime,cpu 0 0 cgroup /cgroup/cpuacct cgroup rw,relatime,cpuacct 0 0 cgroup /cgroup/memory cgroup rw,relatime,memory 0 0 cgroup /cgroup/devices cgroup rw,relatime,devices 0 0 cgroup /cgroup/freezer cgroup rw,relatime,freezer 0 0 cgroup /cgroup/net_cls cgroup rw,relatime,net_cls 0 0 cgroup /cgroup/blkio cgroup rw,relatime,blkio 0 0 /etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=1625,timeout=300,minproto=5,maxproto=5,indirect 0 0 -hosts /net autofs rw,relatime,fd=13,pgrp=1625,timeout=300,minproto=5,maxproto=5,indirect 0 0 gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=0,group_id=0 0 0 sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 /dev/mapper/VolGroup-lv_root /sbin/mount.lustre ext4 rw,relatime,barrier=1,data=ordered 0 0 /dev/loop0 /mnt/mds1 lustre ro 0 0 /dev/loop1 /mnt/ost1 lustre ro 0 0 /dev/loop2 /mnt/ost2 lustre ro 0 0 192.168.56.104@tcp:/lustre /mnt/lustre lustre rw,flock,user_xattr 0 0 ===============> lustre mount 192.168.56.104@tcp:/lustre /home/bind lustre rw,flock,user_xattr 0 0 ===============> lustre bind mount Patch for this fix can be tracked at http://review.whamcloud.com/#/c/18195/

          Vinayak (vinayakswami.hariharmath@seagate.com) uploaded a new patch: http://review.whamcloud.com/18195
          Subject: LU-7718 utils: lfs getstripe does not work on bind mount
          Project: fs/lustre-release
          Branch: master
          Current Patch Set: 1
          Commit: f9338774a5afc5689b62fc5dc1151a8db8e805af

          gerrit Gerrit Updater added a comment - Vinayak (vinayakswami.hariharmath@seagate.com) uploaded a new patch: http://review.whamcloud.com/18195 Subject: LU-7718 utils: lfs getstripe does not work on bind mount Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: f9338774a5afc5689b62fc5dc1151a8db8e805af

          People

            wc-triage WC Triage
            vinayakh Vinayak (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: