From 38ac153d69fb575eee34749067f1f7f91b5c6f65 Mon Sep 17 00:00:00 2001 From: panda Date: Thu, 19 Aug 2021 13:12:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(host-deployer):=20XFS=20uuid=E5=86=B2?= =?UTF-8?q?=E7=AA=81=20=E6=97=A0=E6=B3=95=20mount?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pkg/hostman/diskutils/fsutils/fsutils.go 1. ResizeFs 操作中 ResizePartitionFs 未对 xfs uuid 加锁 导致挂载相同uuid 磁盘异异常 - dmesg 显示 [86653.888361] XFS (nbd2p1): Filesystem has duplicate UUID f4553201-609a-4657-87aa-994cc6339f50 - can't mount - 批量创建虚拟机, 虚拟机磁盘为xfs, 多台虚拟机调度到同一宿主机时 DeployGuestFs 无法 chroot password root --- pkg/hostman/diskutils/fsutils/fsutils.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/hostman/diskutils/fsutils/fsutils.go b/pkg/hostman/diskutils/fsutils/fsutils.go index 96d9d2e44b..29b7b360c2 100644 --- a/pkg/hostman/diskutils/fsutils/fsutils.go +++ b/pkg/hostman/diskutils/fsutils/fsutils.go @@ -28,6 +28,7 @@ import ( "yunion.io/x/log" "yunion.io/x/pkg/utils" + "yunion.io/x/onecloud/pkg/hostman/guestfs/kvmpart" "yunion.io/x/onecloud/pkg/util/fileutils2" "yunion.io/x/onecloud/pkg/util/procutils" "yunion.io/x/onecloud/pkg/util/regutils2" @@ -255,6 +256,11 @@ func ResizePartitionFs(fpath, fs string, raiseError bool) (error, bool) { } } FsckXfsFs(fpath) + uuid := uuids["UUID"] + if len(uuid) > 0 { + kvmpart.LockXfsPartition(uuid) + defer kvmpart.UnlockXfsPartition(uuid) + } cmds = [][]string{{"mkdir", "-p", tmpPoint}, {"mount", fpath, tmpPoint}, {"sleep", "2"},