]> git.proxmox.com Git - pve-installer.git/blobdiff - proxinstall
fix #1853: spelling errors
[pve-installer.git] / proxinstall
index e5a6937c8c71fd3fe08588f93f5b58e5ff368108..8a1476b23bef2bcf535850a38ff74ca5f0d65ecf 100755 (executable)
@@ -72,6 +72,11 @@ lvmthin: local-lvm
        content rootdir,images
 __EOD__
 
+my $storage_cfg_local = <<__EOD__;
+dir: local
+       path /var/lib/vz
+       content iso,vztmpl,backup,rootdir,images
+__EOD__
 
 sub file_read_firstline {
     my ($filename) = @_;
@@ -618,7 +623,9 @@ sub hd_size {
 sub get_partition_dev {
     my ($dev, $partnum) = @_;
 
-    if ($dev =~ m|^/dev/[hxsev]d[a-z]$|) {
+    if ($dev =~ m|^/dev/sd([a-h]?[a-z]\|i[a-v])$|) {
+       return "${dev}$partnum";
+    } elsif ($dev =~ m|^/dev/[hxev]d[a-z]$|) {
        return "${dev}$partnum";
     } elsif ($dev =~ m|^/dev/[^/]+/c\d+d\d+$|) {
        return "${dev}p$partnum";
@@ -972,7 +979,7 @@ sub create_lvm_volumes {
 
     my $rootdev = "/dev/$vgname/root";
     my $datadev = "/dev/$vgname/data";
-    my $swapfile = "/dev/$vgname/swap";
+    my $swapfile;
 
     # we use --metadatasize 250k, which results in "pe_start = 512"
     # so pe_start is aligned on a 128k boundary (advantage for SSDs)
@@ -1001,7 +1008,7 @@ sub create_lvm_volumes {
        my $rest = $os_size - $swap_size - $rootsize; # in KB
 
        my $minfree;
-       if ($config_options->{minfree}) {
+       if (defined($config_options->{minfree})) {
            $minfree = (($config_options->{minfree}*1024*1024) >= $rest ) ? $space :
                $config_options->{minfree}*1024*1024 ;
        } else {
@@ -1010,7 +1017,7 @@ sub create_lvm_volumes {
 
        $rest = $rest - $minfree;
 
-       if ($config_options->{maxvz}) {
+       if (defined($config_options->{maxvz})) {
            $rest = (($config_options->{maxvz}*1024*1024) <= $rest) ?
                $config_options->{maxvz}*1024*1024 : $rest;
        }
@@ -1018,21 +1025,35 @@ sub create_lvm_volumes {
        $datasize = $rest;
 
     } else {
-       my $minfree = $config_options->{minfree} ? $config_options->{minfree}*1024*1024 : $space;
+       my $minfree = defined($config_options->{minfree}) ? $config_options->{minfree}*1024*1024 : $space;
        $rootsize = $os_size - $minfree - $swap_size; # in KB
     }
 
-    syscmd ("/sbin/lvcreate -L${swap_size}K -nswap $vgname") == 0 ||
-       die "unable to create swap volume\n";
+    if ($swap_size) {
+       syscmd ("/sbin/lvcreate -L${swap_size}K -nswap $vgname") == 0 ||
+           die "unable to create swap volume\n";
+
+       $swapfile = "/dev/$vgname/swap";
+    }
 
     syscmd ("/sbin/lvcreate -L${rootsize}K -nroot $vgname") == 0 ||
        die "unable to create root volume\n";
 
-    if ($datasize) {
+    if ($datasize > 4*1024*1024) {
+       my $metadatasize = $datasize/100; # default 1% of data
+       $metadatasize = 1024*1024 if $metadatasize < 1024*1024; # but at least 1G
+       $metadatasize = 16*1024*1024 if $metadatasize > 16*1024*1024; # but at most 16G
+
+       # otherwise the metadata is taken out of $minfree
+       $datasize -= 2*$metadatasize;
+
+       # 1 4MB PE to allow for rounding
+       $datasize -= 4*1024;
+
        syscmd ("/sbin/lvcreate -L${datasize}K -ndata $vgname") == 0 ||
            die "unable to create data volume\n";
 
-       syscmd ("/sbin/lvconvert --yes --type thin-pool $vgname/data") == 0 ||
+       syscmd ("/sbin/lvconvert --yes --type thin-pool --poolmetadatasize ${metadatasize}K $vgname/data") == 0 ||
            die "unable to create data thin-pool\n";
     } else {
        $datadev = undef;
@@ -1050,7 +1071,7 @@ sub compute_swapsize {
     my $hdgb = int($hdsize/(1024*1024));
 
     my $swapsize;
-    if ($config_options->{swapsize}) {
+    if (defined($config_options->{swapsize})) {
        $swapsize = $config_options->{swapsize}*1024*1024;
     } else {
        my $ss = int ($total_memory / 1024);
@@ -1075,6 +1096,7 @@ sub extract_data {
 
     my $swapfile;
     my $rootdev;
+    my $datadev;
 
     my $use_zfs = 0;
     my $use_btrfs = 0;
@@ -1192,7 +1214,7 @@ sub extract_data {
            zfs_create_rpool($vdev);
 
            my $swap_size = compute_swapsize($disksize);
-           $swapfile = zfs_create_swap($swap_size);
+           $swapfile = zfs_create_swap($swap_size) if $swap_size;
 
        } else {
 
@@ -1217,7 +1239,7 @@ sub extract_data {
                                  osdev => $osdev, by_id => $by_id };
 
            my $swap_size = compute_swapsize($os_size);
-           ($rootdev, $swapfile) =
+           ($rootdev, $swapfile, $datadev) =
                create_lvm_volumes($osdev, $os_size, $swap_size);
 
            # trigger udev to create /dev/disk/by-uuid
@@ -1640,13 +1662,15 @@ _EOD
                          "$tmpdir/user.cfg");
 
            # write storage.cfg
-           my $strorage_cfg_fn = "$tmpdir/storage.cfg";
+           my $storage_cfg_fn = "$tmpdir/storage.cfg";
            if ($use_zfs) {
-               write_config ($storage_cfg_zfs, $strorage_cfg_fn);
+               write_config ($storage_cfg_zfs, $storage_cfg_fn);
            } elsif ($use_btrfs) {
-               write_config ($storage_cfg_btrfs, $strorage_cfg_fn);
+               write_config ($storage_cfg_btrfs, $storage_cfg_fn);
+           } elsif ($datadev) {
+               write_config ($storage_cfg_lvmthin, $storage_cfg_fn);
            } else {
-               write_config ($storage_cfg_lvmthin, $strorage_cfg_fn);
+               write_config ($storage_cfg_local, $storage_cfg_fn);
            }
 
            run_command("chroot $targetdir /usr/bin/create_pmxcfs_db /tmp/pve /var/lib/pve-cluster/config.db");
@@ -2684,7 +2708,7 @@ sub create_hdoption_view {
     my $entry_swapsize = Gtk3::Entry->new();
     $entry_swapsize->set_tooltip_text("maximum SWAP size (GB)");
     $entry_swapsize->signal_connect (key_press_event => \&check_float);
-    $entry_swapsize->set_text($config_options->{swapsize}) if $config_options->{swapsize};
+    $entry_swapsize->set_text($config_options->{swapsize}) if defined($config_options->{swapsize});
     push @$hdsize_labeled_widgets, "swapsize", $entry_swapsize;
 
     my $entry_maxroot = Gtk3::Entry->new();
@@ -2698,7 +2722,7 @@ sub create_hdoption_view {
     my $entry_minfree = Gtk3::Entry->new();
     $entry_minfree->set_tooltip_text("minimum free LVM space (GB, required for LVM snapshots)");
     $entry_minfree->signal_connect (key_press_event => \&check_float);
-    $entry_minfree->set_text($config_options->{minfree}) if $config_options->{minfree};
+    $entry_minfree->set_text($config_options->{minfree}) if defined($config_options->{minfree});
     push @$hdsize_labeled_widgets, "minfree", $entry_minfree;
 
     my $entry_maxvz;
@@ -2706,7 +2730,7 @@ sub create_hdoption_view {
        $entry_maxvz = Gtk3::Entry->new();
        $entry_maxvz->set_tooltip_text("maximum size (GB) for LVM data volume");
        $entry_maxvz->signal_connect (key_press_event => \&check_float);
-       $entry_maxvz->set_text($config_options->{maxvz}) if $config_options->{maxvz};
+       $entry_maxvz->set_text($config_options->{maxvz}) if defined($config_options->{maxvz});
        push @$hdsize_labeled_widgets, "maxvz", $entry_maxvz;
     }