Как создать гостевой сервер kvm с сервером ubuntu с жестким диском & gt; 2TB?

У меня есть сервер Ubuntu, работающий как хост kvm. Хост имеет три диска объемом 1,5 Тбайт, а хост использует lvm и имеет группу томов объемом 4 Тбайт, на которой я создал логический том 3 ТБ, называемый nfsserver.I хочу создать гостевой сервер с ubuntu, который я буду использовать как 3-тибайтный файловый сервер

Ubuntu vmbuilder использует mbr для гостевой файловой системы, которая не может обрабатывать жесткие диски 2TB. Я искал, но не могу найти никаких руководств или howtos, рассказывающих или даже упоминающих, как создать гостя с помощью GPT для гостевой файловой системы.

Есть ли еще одно решение для этого, которое мне не хватает?

Команда, которую я использую для создания гостевой vm:

vmbuilder kvm ubuntu --suite=trusty --flavour=virtual --raw=/dev/server1/nfsserver --rootsize=3000000 --domain=nfsserver --arch=amd64 --mirror=http://dk.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --user=admin --name=Admin --pass=PassXXXX --addpkg=unattended-upgrades --addpkg=acpid --addpkg=linux-image-generic --addpkg=openssh-server --mem=1024 --hostname=nfsserver --bridge=br0

С помощью набора корневых элементов, vmbuilder терпит неудачу с «длиной раздела ... превышает максимальный максимум msdos-partition-table». Без него гость строит и работает просто отлично, но только с диском по умолчанию. Когда внутри гостевой системы fdisk -l может видеть, что диск (sda) равен 3 ТБ, а корневой раздел sda1 использует только несколько ГБ этого. Я попытался изменить размер раздела, но это не удается с аналогичной ошибкой «msdos .. max ..».

Я знаю, что я мог бы, возможно, изнутри гостевой системы сохранить небольшой sda1 переделать файловую систему и изменить ее на использование gpt и скопировать сохраненный раздел sda1 (в новый корневой раздел 3 ТБ). Но это кажется трудным обходным решением для меня, и я думаю, что должно быть более простое решение.

lvdisplay на хосте:

    --- Logical volume ---
  LV Path                /dev/server1/nfsserver
  LV Name                nfsserver
  VG Name                server1
  LV UUID                F8wWeB-GSUI-rxd3-TDQ1-yjcI-af50-s9jdXZ
  LV Write Access        read/write
  LV Creation host, time server1, 2015-02-02 15:56:20 +0100
  LV Status              available
  # open                 0
  LV Size                3.04 TiB
  Current LE             797964
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1
EDIT: ответ Томаса ниже было очень полезно при решении моей проблемы, в интересах других, просматривающих этот вопрос, вот подробное описание того, что я сделал:

У меня есть VG, называемый server1 с 4TB пространства. Чтобы подготовить некоторые диски для гостя, я создал и отформатировал некоторые LV:

lvcreate -L 3000G -n nfsserver server1
lvcreate -L 6G -n nfsserver-root server1
lvcreate -L 200M -n nfsserver-boot server1
lvcreate -L 2G -n nfsserver-swap server1
mkfs.ext4 /dev/mapper/server1-nfsserver-boot 
mkfs.ext4 /dev/mapper/server1-nfsserver-root 
mkfs.ext4 /dev/mapper/server1-nfsserver 
mkswap -f /dev/mapper/server1-nfsserver-swap

Я установил virtinstall (apt-get install virtinst), потому что вы не можете использовать vmbuilder для этого, так как он будет создавать разделы и как указывает Томас, на самом деле для этого нам не нужны / нужны разделы. С помощью virt-install вы можете создать гостя и запустить установку сервера ubuntu в гостевой системе при загрузке - это позволяет вам контролировать, для чего должны использоваться разные диски. Вам нужен раздел на диске, который будет использоваться как / boot, хотя, поскольку установщик либо не может сам создать раздел, либо не сможет выполнить установку Grub. Поэтому мы используем fdisk на хосте перед созданием guest:

user@server1:~$ sudo fdisk /dev/mapper/server1-nfsserver-boot
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x95a40881.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-409599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-409599, default 409599): 
Using default value 409599

Command (m for help): p

Disk /dev/mapper/server1-nfsserver-boot: 209 MB, 209715200 bytes
255 heads, 63 sectors/track, 25 cylinders, total 409600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x95a40881

                       Device Boot      Start         End      Blocks   Id  System
/dev/mapper/server1-nfsserver-boot1            2048      409599      203776   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
user@server1:~$ sudo fdisk -l /dev/mapper/server1-nfsserver-boot

Disk /dev/mapper/server1-nfsserver-boot: 209 MB, 209715200 bytes
127 heads, 37 sectors/track, 87 cylinders, total 409600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x95a40881

                       Device Boot      Start         End      Blocks   Id  System
/dev/mapper/server1-nfsserver-boot1            2048      409599      203776   83  Linux
user@server1:~$

Я проигнорировал предупреждения из fdisk, он работал нормально. Я загрузил последнюю версию Ubuntu LTS

wget http://releases.ubuntu.com/14.04.1/ubuntu-14.04.1-server-amd64.iso

И запустил virt-install:

virt-install --name=nfsserver --ram=1024 --os-type=linux --os-variant=ubuntutrusty --cdrom=/home/user/ubuntu-14.04.1-server-amd64.iso --disk path=/dev/mapper/server1-nfsserver-boot --disk path=/dev/mapper/server1-nfsserver-root --disk path=/dev/mapper/server1-nfsserver-swap --network bridge=br0 --vcpus=1 --vnc --noautoconsole

Он работает очень быстро и загружает гостя из загруженного iso. Используя virt-manager с моего настольного компьютера в той же сети, что и хост, я мог подключиться к гостю и пройти установку. Когда вы переходите к точке с разделами, установщик может видеть все ваши LV как диски, и это просто вопрос, для чего нужно что-то использовать.

Я добавил пароль 3TB-диска: выключите гость, отредактируйте гостя и запустите его agian:

virsh shutdown nfsserver
virsh edit nfsserver

Это откроет гостевой xml-файл, определяющий гостя, я добавил свой 3TB LV в качестве дополнительного диска ниже других уже присутствующих дисков: [!d19 ]

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/mapper/server1-nfsserver'/>
  <target dev='vdd' bus='virtio'/>
</disk>

Затем

virsh start nfsserver

И, наконец, в вашем гостю вы можете установить свой новый диск:

sudo mount /dev/vdd /your/mount/point

И если он монтируется, то сделать это Постоянно добавьте эту строку в ваш / etc / fstab:

/dev/vdd /your/mount/point ext4 errors=remount-ro 0 0

Вот и все! Теперь у вас есть гость с огромным диском. Благодаря советам Томаса теперь у вас также есть удивительно легко, если вы хотите клонировать своего гостя или изменять размеры дисков.

1
задан 13 April 2017 в 15:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: