api2/node/disks/zfs: instantiate import service
When creating a new zpool for a datastore, also instantiate an import-unit for it. This helps in cases where '/etc/zfs/zool.cache' get corrupted and thus the pool is not imported upon boot. This patch needs the corresponding addition of 'zfs-import@.service' in the zfsonlinux repository. Suggested-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
parent
0c41e0d06b
commit
905147a5ee
@ -25,6 +25,8 @@ use crate::server::WorkerTask;
|
||||
|
||||
use crate::api2::types::*;
|
||||
|
||||
use crate::tools::systemd;
|
||||
|
||||
pub const DISK_ARRAY_SCHEMA: Schema = ArraySchema::new(
|
||||
"Disk name list.", &BLOCKDEVICE_NAME_SCHEMA)
|
||||
.schema();
|
||||
@ -355,6 +357,9 @@ pub fn create_zpool(
|
||||
let output = crate::tools::run_command(command, None)?;
|
||||
worker.log(output);
|
||||
|
||||
let import_unit = format!("zfs-import@{}.service", systemd::escape_unit(&name, false));
|
||||
systemd::enable_unit(&import_unit)?;
|
||||
|
||||
if let Some(compression) = compression {
|
||||
let mut command = std::process::Command::new("zfs");
|
||||
command.args(&["set", &format!("compression={}", compression), &name]);
|
||||
|
Loading…
Reference in New Issue
Block a user