这篇文章记录一下自己在Ubuntu下用LVM把4块硬盘串联在了一起的过程。首先说一下我买了4块硬盘之前组的raid10,这里先说两句Ubuntu的raid吧,目前组raid一般可以分为0,1,5,10几种,网上有很多详细的介绍。而搭建方法大多分为软硬两种,其中硬件集成又分为主板上的集成芯片,很多人称之为伪硬件raid,或者专门去买一块raid控制卡,一般在几千元人民币。因为种种原因我最终决定试用下软件解决raid,虽然性能不如硬件raid,但按理说也应该有些提升。
Ubuntu的软件模拟raid普通的安装盘是无法设置的,我安装时已经出了14.04,但是那种安装模式却还只能在12.04下才有。换句话说,傻瓜版的安装包并不代软件设置raid功能,自己安装时要注意找。版本找对了就可以去网上参考大量的教程和视频,这里就不赘述了。我用了块3T硬盘组raid10,最终只有5T多的可用容量。可是在长期使用后并没有觉得性能带来多大提升。我的重要用途是在本地的大树据库上作实验,使用MongoDB,I/O一般情况下是我的瓶颈。但是raid10带来的提升并不明显,还不如我加大了内存来的直接,也许硬盘本身性能不算太好。所以在这次重装电脑时索性试用一下串联,用LVM串起了4块3T硬盘最终获得11T可用空间。
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面就言归正传说下LVM怎样串起多块硬盘,在用14.04傻瓜安装时我选择了LVM选项安装在其中一块硬盘上。安装之后进入系统只能看见2.7T的空间,这里的安装硬盘为/dev/sda,使用
sudo fdisk -l
应该可以看到多块硬盘,我们要安装的sdb,sdc,sdd.. 如果用ls /dev/sd* 也许能看到之前用过后分过区的标记,比如sdb1,sdb2,sdb3...
使用LVM安装的时候应该系统已经有LVM了,若是没有可以用
sudo apt-get install system-config-lvm
来手动安装。
之后我们要对所安装的硬盘转化成physical volume,因为我们最终的logical volume是由多个这种physical volume组成的。这里以sdb为例,多块硬盘以此类推sdc,sdd..
sudo pvcreate /dev/sdb
转化sdb,如果看见有错误显示没找到或是忽略了sdb。最好用gparted创建个GPT partition table,但是不要建立分区partition。
然后用
sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1
来对齐。如果调用ls /dev/sd* 应该只能看到sdb而没有sdb1,sdb2...
这样再试用转化命令应该可以看到转化成功。
现在我们用命令
sudo vgdisplay
可以显示以下当前的logical volume group(VG),如果开始安装时选择了LVM,应该是默认的叫
ubuntu-vg
sudo lvdisplay
命令也可以显示VG当前状态,以及目前LV所在路径,同样默认的应该是
/dev/ubuntu-vg/root
如果是自己创建的,用这两个命令要记下来VG的路径及名称。
现在要把刚才转化过的硬盘加入到我们的VG中来,
sudo vgextend ubuntu-vg /dev/sdb
硬盘已经进入了所组成的VG群,下面还要要分配空间进来。
最后一步,让系统重新划定这些空间来即可使用了。sudo lvextend /dev/ubuntu-vg/root /dev/sdb
sudo resize2fs /dev/ubuntu-vg/root
至此,硬盘应该已经添加成功,试用df -h即可看到了。剩下的sdc,sdd也同样如法炮制,注意不是sdc1,sdd2这种分区,组名和组路径要用对。
enjoy!!