Example #1
0
    def setup_fs(self):
        sc = settings.cluster
        fs = sc.get('fs')
        mkfs_opts = sc.get('mkfs_opts', '')
        mount_opts = sc.get('mount_opts', '')

        if fs == '':
            settings.shutdown("No OSD filesystem specified.  Exiting.")

        mkfs_threads = []
        for device in xrange(0, sc.get('osds_per_node')):
            osds = settings.getnodes('osds')
            common.pdsh(
                osds, 'sudo umount /dev/disk/by-partlabel/osd-device-%s-data' %
                device).communicate()
            common.pdsh(
                osds, 'sudo rm -rf %s/osd-device-%s-data' %
                (self.mnt_dir, device)).communicate()
            common.pdsh(
                osds, 'sudo mkdir -p -m0755 -- %s/osd-device-%s-data' %
                (self.mnt_dir, device)).communicate()

            if fs == 'tmpfs':
                logger.info('using tmpfs osds, not creating a file system.')
            elif fs == 'zfs':
                logger.info('ruhoh, zfs detected.  No mkfs for you!')
                common.pdsh(osds, 'sudo zpool destroy osd-device-%s-data' %
                            device).communicate()
                common.pdsh(
                    osds,
                    'sudo zpool create -f -O xattr=sa -m legacy osd-device-%s-data /dev/disk/by-partlabel/osd-device-%s-data'
                    % (device, device)).communicate()
                common.pdsh(
                    osds,
                    'sudo zpool add osd-device-%s-data log /dev/disk/by-partlabel/osd-device-%s-zil'
                    % (device, device)).communicate()
                common.pdsh(
                    osds,
                    'sudo mount %s -t zfs osd-device-%s-data %s/osd-device-%s-data'
                    %
                    (mount_opts, device, self.mnt_dir, device)).communicate()
            else:
                # do mkfs and mount in 1 long command
                # alternative is to wait until make_osds to mount it
                mkfs_cmd = 'sudo sh -c "mkfs.%s %s /dev/disk/by-partlabel/osd-device-%s-data' % (
                    fs, mkfs_opts, device)
                mkfs_cmd += '; mount %s -t %s /dev/disk/by-partlabel/osd-device-%s-data %s/osd-device-%s-data' % (
                    mount_opts, fs, device, self.mnt_dir, device)

                # make a symlink for block if using newstore+block
                if self.newstore_block:
                    mkfs_cmd += ' ; sudo ln -s /dev/disk/by-partlabel/osd-device-%s-block %s/osd-device-%s-data/block' % (
                        device, self.mnt_dir, device)
                mkfs_cmd += '"'

                mkfs_threads.append((device, common.pdsh(osds, mkfs_cmd)))
        for device, t in mkfs_threads:  # for tmpfs and zfs cases, thread list is empty
            logger.info('for device %d on all hosts awaiting mkfs and mount' %
                        device)
            t.communicate()
Example #2
0
    def setup_fs(self):
        sc = settings.cluster
        fs = sc.get('fs')
        mkfs_opts = sc.get('mkfs_opts', '')
        mount_opts = sc.get('mount_opts', '')

        if fs == '':
             settings.shutdown("No OSD filesystem specified.  Exiting.")

        for device in xrange (0,sc.get('osds_per_node')):
            osds = settings.getnodes('osds')
            common.pdsh(osds, 'sudo umount /dev/disk/by-partlabel/osd-device-%s-data' % device).communicate()
            common.pdsh(osds, 'sudo rm -rf %s/osd-device-%s-data' % (self.mnt_dir, device)).communicate()
            common.pdsh(osds, 'sudo mkdir -p -m0755 -- %s/osd-device-%s-data' % (self.mnt_dir, device)).communicate()

            if fs == 'tmpfs':
                logger.info('using tmpfs osds, not creating a file system.')
            elif fs == 'zfs':
                logger.info('ruhoh, zfs detected.  No mkfs for you!')
                common.pdsh(osds, 'sudo zpool destroy osd-device-%s-data' % device).communicate()
                common.pdsh(osds, 'sudo zpool create -f -O xattr=sa -m legacy osd-device-%s-data /dev/disk/by-partlabel/osd-device-%s-data' % (device, device)).communicate()
                common.pdsh(osds, 'sudo zpool add osd-device-%s-data log /dev/disk/by-partlabel/osd-device-%s-zil' % (device, device)).communicate()
                common.pdsh(osds, 'sudo mount %s -t zfs osd-device-%s-data %s/osd-device-%s-data' % (mount_opts, device, self.mnt_dir, device)).communicate()
            else: 
                common.pdsh(osds, 'sudo mkfs.%s %s /dev/disk/by-partlabel/osd-device-%s-data' % (fs, mkfs_opts, device)).communicate()
                common.pdsh(osds, 'sudo mount %s -t %s /dev/disk/by-partlabel/osd-device-%s-data %s/osd-device-%s-data' % (mount_opts, fs, device, self.mnt_dir, device)).communicate()
Example #3
0
File: ceph.py Project: sirspock/cbt
    def setup_fs(self):
        sc = settings.cluster
        fs = sc.get('fs')
        mkfs_opts = sc.get('mkfs_opts', '')
        mount_opts = sc.get('mount_opts', '')

        if fs == '':
             settings.shutdown("No OSD filesystem specified.  Exiting.")

        mkfs_threads = []
        for device in xrange (0,sc.get('osds_per_node')):
            osds = settings.getnodes('osds')
            common.pdsh(osds, 'sudo umount /dev/disk/by-partlabel/osd-device-%s-data' % device).communicate()
            common.pdsh(osds, 'sudo rm -rf %s/osd-device-%s-data' % (self.mnt_dir, device)).communicate()
            common.pdsh(osds, 'sudo mkdir -p -m0755 -- %s/osd-device-%s-data' % (self.mnt_dir, device)).communicate()

            if fs == 'tmpfs':
                logger.info('using tmpfs osds, not creating a file system.')
            elif fs == 'zfs':
                logger.info('ruhoh, zfs detected.  No mkfs for you!')
                common.pdsh(osds, 'sudo zpool destroy osd-device-%s-data' % device).communicate()
                common.pdsh(osds, 'sudo zpool create -f -O xattr=sa -m legacy osd-device-%s-data /dev/disk/by-partlabel/osd-device-%s-data' % (device, device)).communicate()
                common.pdsh(osds, 'sudo zpool add osd-device-%s-data log /dev/disk/by-partlabel/osd-device-%s-zil' % (device, device)).communicate()
                common.pdsh(osds, 'sudo mount %s -t zfs osd-device-%s-data %s/osd-device-%s-data' % (mount_opts, device, self.mnt_dir, device)).communicate()
            else: 
                # do mkfs and mount in 1 long command
                # alternative is to wait until make_osds to mount it
                mkfs_cmd='sudo sh -c "mkfs.%s %s /dev/disk/by-partlabel/osd-device-%s-data ; ' % (fs, mkfs_opts, device)
                mkfs_cmd += 'mount %s -t %s /dev/disk/by-partlabel/osd-device-%s-data %s/osd-device-%s-data"' % (mount_opts, fs, device, self.mnt_dir, device)
                mkfs_threads.append((device, common.pdsh(osds, mkfs_cmd)))
        for device, t in mkfs_threads:  # for tmpfs and zfs cases, thread list is empty
            logger.info('for device %d on all hosts awaiting mkfs and mount'%device)
            t.communicate()
Example #4
0
    def setup_fs(self):
        sc = settings.cluster
        fs = sc.get("fs")
        mkfs_opts = sc.get("mkfs_opts", "")
        mount_opts = sc.get("mount_opts", "")

        if fs == "":
            settings.shutdown("No OSD filesystem specified.  Exiting.")

        for device in xrange(0, sc.get("osds_per_node")):
            osds = settings.getnodes("osds")
            common.pdsh(osds, "sudo umount /dev/disk/by-partlabel/osd-device-%s-data" % device).communicate()
            common.pdsh(osds, "sudo rm -rf %s/osd-device-%s-data" % (self.mnt_dir, device)).communicate()
            common.pdsh(osds, "sudo mkdir -p -m0755 -- %s/osd-device-%s-data" % (self.mnt_dir, device)).communicate()

            if fs == "tmpfs":
                print "using tmpfs osds, not creating a file system."
            elif fs == "zfs":
                print "ruhoh, zfs detected.  No mkfs for you!"
                common.pdsh(osds, "sudo zpool destroy osd-device-%s-data" % device).communicate()
                common.pdsh(
                    osds,
                    "sudo zpool create -f -O xattr=sa -m legacy osd-device-%s-data /dev/disk/by-partlabel/osd-device-%s-data"
                    % (device, device),
                ).communicate()
                common.pdsh(
                    osds,
                    "sudo zpool add osd-device-%s-data log /dev/disk/by-partlabel/osd-device-%s-zil" % (device, device),
                ).communicate()
                common.pdsh(
                    osds,
                    "sudo mount %s -t zfs osd-device-%s-data %s/osd-device-%s-data"
                    % (mount_opts, device, self.mnt_dir, device),
                ).communicate()
            else:
                common.pdsh(
                    osds, "sudo mkfs.%s %s /dev/disk/by-partlabel/osd-device-%s-data" % (fs, mkfs_opts, device)
                ).communicate()
                common.pdsh(
                    osds,
                    "sudo mount %s -t %s /dev/disk/by-partlabel/osd-device-%s-data %s/osd-device-%s-data"
                    % (mount_opts, fs, device, self.mnt_dir, device),
                ).communicate()