Skip to content

Commit 48b5d2e

Browse files
bengland2Mark Nelson
authored and
Mark Nelson
committed
do mkfs in parallel (except for tmpfs, zfs)
Closes ceph#51
1 parent 6932779 commit 48b5d2e

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

cluster/ceph.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def setup_fs(self):
133133
if fs == '':
134134
settings.shutdown("No OSD filesystem specified. Exiting.")
135135

136+
mkfs_threads = []
136137
for device in xrange (0,sc.get('osds_per_node')):
137138
osds = settings.getnodes('osds')
138139
common.pdsh(osds, 'sudo umount /dev/disk/by-partlabel/osd-device-%s-data' % device).communicate()
@@ -148,9 +149,14 @@ def setup_fs(self):
148149
common.pdsh(osds, 'sudo zpool add osd-device-%s-data log /dev/disk/by-partlabel/osd-device-%s-zil' % (device, device)).communicate()
149150
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()
150151
else:
151-
common.pdsh(osds, 'sudo mkfs.%s %s /dev/disk/by-partlabel/osd-device-%s-data' % (fs, mkfs_opts, device)).communicate()
152-
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()
153-
152+
# do mkfs and mount in 1 long command
153+
# alternative is to wait until make_osds to mount it
154+
mkfs_cmd='sudo sh -c "mkfs.%s %s /dev/disk/by-partlabel/osd-device-%s-data ; ' % (fs, mkfs_opts, device)
155+
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)
156+
mkfs_threads.append((device, common.pdsh(osds, mkfs_cmd)))
157+
for device, t in mkfs_threads: # for tmpfs and zfs cases, thread list is empty
158+
logger.info('for device %d on all hosts awaiting mkfs and mount'%device)
159+
t.communicate()
154160

155161
def distribute_conf(self):
156162
nodes = settings.getnodes('head', 'clients', 'osds', 'mons', 'rgws')

0 commit comments

Comments
 (0)