Kaynağa Gözat

devmapper: Log start and end of filesystem creation

ext4 filesystem creation can take a long time on 100G thin device and
systemd might time out and kill docker service. Often user is left thinking
why docker is taking so long and logs don't give any hint. Log an info
message in journal for start and end of filesystem creation. That way
a user can look at logs and figure out that filesystem creation is
taking long time.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Vivek Goyal 9 yıl önce
ebeveyn
işleme
a489e685c0
1 değiştirilmiş dosya ile 11 ekleme ve 8 silme
  1. 11 8
      daemon/graphdriver/devmapper/deviceset.go

+ 11 - 8
daemon/graphdriver/devmapper/deviceset.go

@@ -574,7 +574,7 @@ func determineDefaultFS() string {
 	return "ext4"
 }
 
-func (devices *DeviceSet) createFilesystem(info *devInfo) error {
+func (devices *DeviceSet) createFilesystem(info *devInfo) (err error) {
 	devname := info.DevName()
 
 	args := []string{}
@@ -584,12 +584,19 @@ func (devices *DeviceSet) createFilesystem(info *devInfo) error {
 
 	args = append(args, devname)
 
-	var err error
-
 	if devices.filesystem == "" {
 		devices.filesystem = determineDefaultFS()
 	}
 
+	logrus.Infof("devmapper: Creating filesystem %s on device %s", devices.filesystem, info.Name())
+	defer func() {
+		if err != nil {
+			logrus.Infof("devmapper: Error while creating filesystem %s on device %s: %v", devices.filesystem, info.Name(), err)
+		} else {
+			logrus.Infof("devmapper: Successfully created filesystem %s on device %s", devices.filesystem, info.Name())
+		}
+	}()
+
 	switch devices.filesystem {
 	case "xfs":
 		err = exec.Command("mkfs.xfs", args...).Run()
@@ -605,11 +612,7 @@ func (devices *DeviceSet) createFilesystem(info *devInfo) error {
 	default:
 		err = fmt.Errorf("Unsupported filesystem type %s", devices.filesystem)
 	}
-	if err != nil {
-		return err
-	}
-
-	return nil
+	return
 }
 
 func (devices *DeviceSet) migrateOldMetaData() error {