有个老式的HP MicroServer GEN 8服务器,丢了可惜,但用起来却是恼火,之前安装系统使用USB做bootloader引导盘,然后又用了一块SSD做系统盘,剩下的4个3.5寸的盘位刚好可以放数据,我这里又4T的盘4个,在2015年简直都是超大的存在,放在现在用也很大,所以就拿来做备份和仓库。但问题是主板支持MBR的分区,默认安装有2T使用的限制。本人也尝试过很多方法,前后两次用到1.8T的时候就写不下去了,最后还是找了一个妥协的解决办法——调整PE大小。具体如下:
硬件条件
HP MicroServer GEN 8
数据盘:4 x 4T/3.5英寸
创建分区和PV
由于我是4T的盘,所以需要将物理磁盘分成2个2T的MSDOS分区盘,具体在fdisk/parted分区的时候实现,详见另外一篇文章:CentOS的GPT分区+LVM挂载
创建VG
之前创建的VG的PE大小没有指定,默认是4M,而突破2T分区限制的关键就在此。
vgcreate -s 32M vg0 /dev/sd[abcd]1
说明:PE的大小是PV和VG的最小存储单元,PE小则空间利用率高,PE大则性能好,两者需要找到平衡点予以取舍。而此处我面临的是使用整个存储空间,所以这才是我的目标。自己做了个估算,如果2T的大小在LVM时是按可管理的PE数决定,那么原来的PE默认4M对应2T的限制,那么16T的空间对应的PE就该为32M。这是我个人的猜测,由于具体的原理本人还未查明,如果有人能够指出原因,请留言指教。
创建LV
4块盘不做条带化真有点说不过去了,我选择的是RAID0,因为本来就是备份用的,容量还是关键,加之增大了PE,磁盘利用率也不好看了。
lvcreate -i 4 -l 7452 -n lv_home vg0
lvcreate -i 4 -l 100%FREE -n lv_data vg0
扩展VG
vgextend vg0 /dev/sd[abcd]2
因为之前创建VG时指定了PE大小,后续扩容进取后就会保证一致。
扩展LV
lvextend -i 4 -l +7452 /dev/vg0/lv_home
lvextend -i 4 -l +100%FREE /dev/vg0/lv_data
扩展的时候要指明条带化的个数,‘-l’参数的'+'号不要忘记。
后续操作
最后就剩下
- mkfs
- mount
- 编辑/etc/fstab实现自动挂载
此处,就不详细描述了,详见另外一篇文章:CentOS的GPT分区+LVM挂载
本文章只是记录了本人此次操作,技术上有不正确的地方还请大家指出。