restore-daemon: avoid auto-mounting zpools
the duration of mounting zpools not only correspond to the number of disks, but also to the content (many subvols for example) which we cannot know beforehand. so avoid mounting them at the start, and mount it only when the user requests a listing/extraction with the zpool in path Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
4d76ab91e4
commit
8eaa46ffea
@ -453,30 +453,12 @@ impl DiskState {
|
||||
cmd.args(["import", "-d", "/dev"].iter());
|
||||
let result = run_command(cmd, None).unwrap();
|
||||
for (pool, disks) in Self::parse_zpool_import(&result) {
|
||||
let mut bucket = Bucket::ZPool(ZFSBucketData {
|
||||
let bucket = Bucket::ZPool(ZFSBucketData {
|
||||
name: pool.clone(),
|
||||
size: None,
|
||||
mountpoint: None,
|
||||
});
|
||||
|
||||
// anything more than 5 disks we assume to take too long to mount, so we don't
|
||||
// automatically - this means that no size can be reported
|
||||
if disks.len() <= 5 {
|
||||
let mp = filesystems.ensure_mounted(&mut bucket);
|
||||
info!(
|
||||
"zpool '{}' (on: {:?}) auto-mounted at '{:?}' (size: {:?})",
|
||||
&pool,
|
||||
&disks,
|
||||
mp,
|
||||
bucket.size(0)
|
||||
);
|
||||
} else {
|
||||
info!(
|
||||
"zpool '{}' (on: {:?}) auto-mount skipped, too many disks",
|
||||
&pool, &disks
|
||||
);
|
||||
}
|
||||
|
||||
for disk in disks {
|
||||
if let Some(fidx) = drive_info.get(&disk) {
|
||||
match disk_map.get_mut(fidx) {
|
||||
|
Loading…
Reference in New Issue
Block a user