mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 10:46:58 +08:00
Merge pull request #19084 from wanyaoqi/automated-cherry-pick-of-#19082-upstream-master
Automated cherry pick of #19082: fix(host-deployer): check executor is enabled on init qemu driver
This commit is contained in:
@@ -58,7 +58,7 @@ func NewKVMGuestDisk(imageInfo qemuimg.SImageInfo, driver string, readOnly bool)
|
||||
}
|
||||
err = img.CreateQcow2(0, false, imageInfo.Path, imageInfo.Password, imageInfo.EncryptFormat, imageInfo.EncryptAlg)
|
||||
if err != nil {
|
||||
log.Errorf("fail to create overlay qcow2 for kvm disk readonly access")
|
||||
log.Errorf("fail to create overlay qcow2 for kvm disk readonly access: %s", err)
|
||||
return nil, errors.Wrap(err, "CreateQcow2")
|
||||
}
|
||||
originImage = imagePath
|
||||
|
||||
@@ -72,6 +72,14 @@ func (m *QemuDeployManager) runOnHost() bool {
|
||||
return m.qemuCmd != QEMU_KVM_PATH
|
||||
}
|
||||
|
||||
func (m *QemuDeployManager) startQemu(cmd string) ([]byte, error) {
|
||||
if m.runOnHost() {
|
||||
return procutils.NewRemoteCommandAsFarAsPossible("bash", "-c", cmd).Output()
|
||||
} else {
|
||||
return procutils.NewCommand("bash", "-c", cmd).Output()
|
||||
}
|
||||
}
|
||||
|
||||
func (m *QemuDeployManager) GetX86InitrdPath() string {
|
||||
if m.runOnHost() {
|
||||
return path.Join(RUN_ON_HOST_ROOT_PATH, X86_INITRD_PATH)
|
||||
@@ -171,7 +179,11 @@ func tryCleanGuest(hmpPath string) {
|
||||
}
|
||||
}
|
||||
|
||||
func InitQemuDeployManager(cpuArch, qemuVersion string, hugepage bool, hugepageSizeKB int, deployConcurrent int) error {
|
||||
func InitQemuDeployManager(
|
||||
cpuArch, qemuVersion string,
|
||||
enableRemoteExecutor, hugepage bool,
|
||||
hugepageSizeKB, deployConcurrent int,
|
||||
) error {
|
||||
if deployConcurrent <= 0 {
|
||||
deployConcurrent = 10
|
||||
}
|
||||
@@ -179,7 +191,11 @@ func InitQemuDeployManager(cpuArch, qemuVersion string, hugepage bool, hugepageS
|
||||
if cpuArch == OS_ARCH_AARCH64 {
|
||||
qemutils.UseAarch64()
|
||||
}
|
||||
qemuCmd := qemutils.GetQemu(qemuVersion)
|
||||
|
||||
var qemuCmd string
|
||||
if enableRemoteExecutor {
|
||||
qemuCmd = qemutils.GetQemu(qemuVersion)
|
||||
}
|
||||
if qemuCmd == "" {
|
||||
qemuCmd = QEMU_KVM_PATH
|
||||
}
|
||||
@@ -624,14 +640,7 @@ func (d *QemuX86Driver) StartGuest(sshPort, ncpu, memSizeMB int, hugePage bool,
|
||||
cmd += __("-device ide-cd,drive=ide0-cd0,bus=ide.1")
|
||||
|
||||
log.Infof("start guest %s", cmd)
|
||||
|
||||
var out []byte
|
||||
var err error
|
||||
if manager.runOnHost() {
|
||||
out, err = procutils.NewRemoteCommandAsFarAsPossible("bash", "-c", cmd).Output()
|
||||
} else {
|
||||
out, err = procutils.NewCommand("bash", "-c", cmd).Output()
|
||||
}
|
||||
out, err := manager.startQemu(cmd)
|
||||
if err != nil {
|
||||
log.Errorf("failed start guest %s: %s", out, err)
|
||||
return errors.Wrapf(err, "failed start guest %s", out)
|
||||
@@ -707,14 +716,7 @@ func (d *QemuARMDriver) StartGuest(sshPort, ncpu, memSizeMB int, hugePage bool,
|
||||
cmd += __("-device scsi-cd,drive=cd0,share-rw=true")
|
||||
|
||||
log.Infof("start guest %s", cmd)
|
||||
|
||||
var out []byte
|
||||
var err error
|
||||
if manager.runOnHost() {
|
||||
out, err = procutils.NewRemoteCommandAsFarAsPossible("bash", "-c", cmd).Output()
|
||||
} else {
|
||||
out, err = procutils.NewCommand("bash", "-c", cmd).Output()
|
||||
}
|
||||
out, err := manager.startQemu(cmd)
|
||||
if err != nil {
|
||||
log.Errorf("failed start guest %s: %s", out, err)
|
||||
return errors.Wrapf(err, "failed start guest %s", out)
|
||||
|
||||
@@ -392,6 +392,7 @@ func (s *SDeployService) PrepareEnv() error {
|
||||
err = qemu_kvm.InitQemuDeployManager(
|
||||
strings.TrimSpace(string(cpuArch)),
|
||||
DeployOption.DefaultQemuVersion,
|
||||
DeployOption.EnableRemoteExecutor,
|
||||
DeployOption.HugepagesOption == "native",
|
||||
DeployOption.HugepageSizeMb*1024,
|
||||
DeployOption.DeployConcurrent,
|
||||
|
||||
@@ -687,6 +687,10 @@ func (img *SQemuImage) CreateQcow2(sizeMB int, compact bool, backPath string, pa
|
||||
} else {
|
||||
extraArgs = append(extraArgs, "-b", backPath)
|
||||
}
|
||||
if len(string(backQemu.Format)) > 0 {
|
||||
extraArgs = append(extraArgs, "-F", string(backQemu.Format))
|
||||
}
|
||||
|
||||
if !compact {
|
||||
options = append(options, "cluster_size=2M")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user