@@ -133,6 +133,7 @@ def setup_fs(self):
133
133
if fs == '' :
134
134
settings .shutdown ("No OSD filesystem specified. Exiting." )
135
135
136
+ mkfs_threads = []
136
137
for device in xrange (0 ,sc .get ('osds_per_node' )):
137
138
osds = settings .getnodes ('osds' )
138
139
common .pdsh (osds , 'sudo umount /dev/disk/by-partlabel/osd-device-%s-data' % device ).communicate ()
@@ -148,9 +149,14 @@ def setup_fs(self):
148
149
common .pdsh (osds , 'sudo zpool add osd-device-%s-data log /dev/disk/by-partlabel/osd-device-%s-zil' % (device , device )).communicate ()
149
150
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 ()
150
151
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 ()
154
160
155
161
def distribute_conf (self ):
156
162
nodes = settings .getnodes ('head' , 'clients' , 'osds' , 'mons' , 'rgws' )
0 commit comments