我正在寻找一种分区的方法(最后是vm的启动文件),这样就可以增加磁盘空间,而不必让vm离线(lvm没有问题),也不需要删除/重新创建分区--使用附带的centos工具。
有可能的办法吗?
谢谢!
编辑:这是我在启动文件中的实际分区选项:
part pv.192 --fstype="lvmpv" --ondisk=sda --size=1 --grow
volgroup centos --pesize=4096 pv.192
logvol / fstype="xfs" --name=root --vgname=centos --maxsize=51200 --size=5024 --grow
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=centos
part pv.193 --fstype="lvmpv" --ondisk=sdb --size=1 --grow
volgroup logs --pesize=4096 pv.193
logvol /var/log --fstype="xfs" --maxsize=51200 --size=8192 --grow --name=log --vgname=logs这里的缺点是,在调整大小时,我必须删除/重新创建卷。
看上去是这样的:
[root@localhost ~]# ssm list
-----------------------------------------------------------
Device Free Used Total Pool Mount point
-----------------------------------------------------------
/dev/sda 21.00 GB PARTITIONED
/dev/sda1 1.00 GB /boot
/dev/sda2 0.00 KB 20.00 GB 20.00 GB centos
/dev/sdb 32.00 GB
/dev/sdb1 0.00 KB 32.00 GB 32.00 GB logs
-----------------------------------------------------------
--------------------------------------------------
Pool Type Devices Free Used Total
--------------------------------------------------
centos lvm 1 0.00 KB 20.00 GB 20.00 GB
logs lvm 1 0.00 KB 32.00 GB 32.00 GB
--------------------------------------------------
--------------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
--------------------------------------------------------------------------------------
/dev/centos/root centos 16.00 GB xfs 15.99 GB 14.99 GB linear /
/dev/centos/swap centos 4.00 GB linear
/dev/logs/log logs 32.00 GB xfs 31.98 GB 31.95 GB linear /var/log
/dev/sda1 1.00 GB xfs 1014.00 MB 871.73 MB part /boot
--------------------------------------------------------------------------------------这就是我想要的(vdb,vdc,vdd) --但也适用于操作系统磁盘:
[root@vm1 isolinux]# ssm list
-------------------------------------------------------------
Device Free Used Total Pool Mount point
-------------------------------------------------------------
/dev/vda 445.00 GB PARTITIONED
/dev/vda1 1.00 GB /boot
/dev/vda2 0.00 KB 439.00 GB 439.00 GB centos
/dev/vdb 0.00 KB 30.00 GB 30.00 GB centos
/dev/vdc 0.00 KB 20.00 GB 20.00 GB testvg
/dev/vdd 0.00 KB 40.00 GB 40.00 GB vg_vdd
-------------------------------------------------------------
----------------------------------------------------
Pool Type Devices Free Used Total
----------------------------------------------------
centos lvm 2 0.00 KB 468.99 GB 468.99 GB
testvg lvm 1 0.00 KB 20.00 GB 20.00 GB
vg_vdd lvm 1 0.00 KB 40.00 GB 40.00 GB
----------------------------------------------------
---------------------------------------------------------------------------------------------
Volume Pool Volume size FS FS size Free Type Mount point
---------------------------------------------------------------------------------------------
/dev/centos/root centos 440.00 GB xfs 439.98 GB 374.89 GB linear /
/dev/centos/swap centos 4.00 GB linear
/dev/vg_vdd/lv_vdd vg_vdd 40.00 GB xfs 39.99 GB 39.99 GB linear
/dev/centos/TEST-SDB centos 25.00 GB xfs 24.99 GB 24.99 GB linear
/dev/testvg/lv_vdc-test testvg 20.00 GB xfs 19.99 GB 19.99 GB linear
/dev/vda1 1.00 GB xfs 1014.00 MB 790.33 MB part /boot
---------------------------------------------------------------------------------------------我希望使用LVM,并将我的文件系统(包括操作系统)直接放在磁盘上。在“磁盘分区信息”部分中是否有一种方法,或者我是否必须对%post (这将排除OS磁盘)进行更改。
谢谢你的暗示!
发布于 2018-06-25 10:12:31
您总是可以使用"onboad“工具来重新创建。删除fdisk中的一个部分并不会擦除它。您只需删除部分,然后重新创建在相同的开始扇区,但更大的大小。在运行挂载分区时,不要犹豫。它不会破坏任何东西。
但是,要在重新创建之后实际使用这个额外的大小,仍然需要一种方法来告诉内核重新加载旧磁盘的部分表,因此您必须安装parted并使用part探头(fdisk将建议您在编写更改和退出时使用这个方法)。它在存储库中,所以只需将yum安装分离。
然后使用resize2fs在线放大文件系统。
VM内部不需要LVM,因为它只会使事情变得更加复杂。(惊喜!)让主机做实际的物理卷布局管理。
请参阅文字记录(实际上是来自Debian的,但对于CentOS,它将完全相同):
root@test:/home/merlin# fdisk -l /dev/sd?
Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3bc1a4d0
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1048575 1046528 511M 82 Linux swap / Solaris
/dev/sda2 1048576 16777215 15728640 7.5G 83 Linux
root@test:/home/merlin# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
udev 494M 0 494M 0% /dev
tmpfs 100M 1.7M 98M 2% /run
/dev/sda2 7.4G 921M 6.1G 13% /
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000此时,我在虚拟化主机上向sda添加了16 Gb。VM看到:
root@test:/home/merlin# dmesg | tail
[ 3.613736] usb 1-1: SerialNumber: 42
[ 3.858801] random: crng init done
[ 3.927777] hidraw: raw HID events driver (C) Jiri Kosina
[ 3.939081] usbcore: registered new interface driver usbhid
[ 3.939082] usbhid: USB HID core driver
[ 3.963159] input: QEMU QEMU USB Tablet as /devices/pci0000:00/0000:00:01.2/usb1/1-1/1-1:1.0/0003:0627:0001.0001/input/input6
[ 3.963623] hid-generic 0003:0627:0001.0001: input,hidraw0: USB HID v0.01 Mouse [QEMU QEMU USB Tablet] on usb-0000:00:01.2-1/input0
[ 54.108990] sd 0:0:0:0: Capacity data has changed
[ 54.110036] sd 0:0:0:0: [sda] 50331648 512-byte logical blocks: (25.8 GB/24.0 GiB)
[ 54.110235] sda: detected capacity change from 8589934592 to 25769803776现在,整个程序:
root@test:/home/merlin# fdisk -l /dev/sda
Disk /dev/sda: 24 GiB, 25769803776 bytes, 50331648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3bc1a4d0
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1048575 1046528 511M 82 Linux swap / Solaris
/dev/sda2 1048576 16777215 15728640 7.5G 83 Linux
root@test:/home/merlin# fdisk /dev/sda
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):
First sector (1048576-50331647, default 1048576):
Last sector, +sectors or +size{K,M,G,T,P} (1048576-50331647, default 50331647):
Created a new partition 2 of type 'Linux' and of size 23.5 GiB.
Partition #2 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n
Command (m for help): p
Disk /dev/sda: 24 GiB, 25769803776 bytes, 50331648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3bc1a4d0
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 1048575 1046528 511M 82 Linux swap / Solaris
/dev/sda2 1048576 50331647 49283072 23.5G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Устройство или ресурс занято
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).
root@test:/home/merlin# partprobe /dev/sda
root@test:/home/merlin# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
udev 494M 0 494M 0% /dev
tmpfs 100M 1.7M 98M 2% /run
/dev/sda2 7.4G 921M 6.1G 13% /
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000
root@test:/home/merlin# resize2fs /dev/sda2
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/sda2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/sda2 is now 6160384 (4k) blocks long.
root@test:/home/merlin# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
udev 494M 0 494M 0% /dev
tmpfs 100M 1.7M 98M 2% /run
/dev/sda2 24G 924M 22G 5% /
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1000发布于 2018-07-06 07:48:11
因为在“磁盘分区信息”部分中显然没有办法完成该任务,所以我使用了%预部分。在这里,您几乎可以使用常见的bash命令,只需做一些修改:
%pre --log /tmp/pre-install.log
echo "Starting Kickstart Pre-Installation..."
echo "Step 1: vgcreate vg_sdb /dev/sdb -f -y"
vgcreate vg_sdb /dev/sdb -f -y
echo "Step 2: lvcreate -l 100%FREE --name sdb vg_sdb"
lvcreate -l 100%FREE --name sdb vg_sdb
echo "Step 3: mkfs.xfs /dev/vg_sdb/sdb"
mkfs.xfs /dev/vg_sdb/sdb
vgchange -ay
%end因为我的启动器将从另一个工具中创建,所以这里不需要进一步的逻辑(例如,没有硬编码的磁盘和卷组,.)
https://serverfault.com/questions/918056
复制相似问题