主机硬盘规格:12*4T SATA, 2*300G SAS
业务部署前先进行主机初始化,执行初始化脚本,其中包括配置软件raid,使用12块SATA盘做raid10,初始化完成之后登陆检查,发现本该22T的raid10分区,只有1.8T,使用lsblk查看,发现其中一块/dev/sdc只有300G,又温故了一下raid10的逻辑,根据木桶短板原理,即所有12块磁盘都最多使用300G,这样12*300/2=1800G,刚好吻合;
分析原因:由于创建软件raid的脚本默认使用/dev/sdb-/dev/sdm的12块磁盘,而这台主机的4T盘其实是/dev/sdb、/dev/sdd到/dev/sdn,所以可以看到截图最后sdn是空闲的,那么是什么原因导致磁盘如此混乱呢?
申请一批新机器之后一般需要进行系统重装,有专门工具支持,无需人工干预,但是最近换了一批机型,之前通用的硬盘配置是12*2T SATA, 1*300G SAS,这次换成了12*4T SATA, 2*300G SAS,多了一块300G的SAS盘,而之前沿用的系统重装是默认不做raid的,这就导致新主机重装后多了块300G的/dev/sdc,弄清楚原因之后,修改了系统重装脚本,支持2块300G磁盘做硬件raid10做为系统盘。
另外了解到,硬件raid后,通过fdisk查看是只有一块盘的,而软件raid,是可以原磁盘和raid磁盘一起被fdisk展示出来的,如下图,可以看到已经只有一块300G的盘了:
有时想知道服务器上有几块磁盘,如果没有做raid,则可以简单使用fdisk -l 就可以看到。
但是做了raid呢,这样就看不出来了。那么如何查看服务器上做了raid?
软件raid:只能通过Linux系统本身来查看
cat /proc/mdstat
可以看到raid级别,状态等信息。
硬件raid: 最佳的办法是通过已安装的raid厂商的管理工具来查看,有cmdline,也有图形界面。如Adaptec公司的硬件卡就可以通过下面的命令进行查看:
# /usr/dpt/raidutil -L all
可以看到非常详细的信息。
当然更多情况是没有安装相应的管理工具,只能依靠Linux本身的话一般我知道的是两种方式:
# dmesg |grep -i raid
# cat /proc/scsi/scsi
显示的信息差不多,raid的厂商,型号,级别,但无法查看各块硬盘的信息。
如下信息作为案例, 命令为
# fdisk -l
Disk /dev/sda: 145.9 GB, 145999527936 bytes
255 heads, 63 sectors/track, 17750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 17750 142472452+ 8e Linux LVM
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: SEAGATE Model: ST3146356SS Rev: HS09
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: SEAGATE Model: ST3146356SS Rev: HS09
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 01 Id: 00 Lun: 00
Vendor: Dell Model: VIRTUAL DISK Rev: 1028
Type: Direct-Access ANSI SCSI revision: 05
通过以上信息可以看出,该服务器有两块磁盘。品牌是希捷的,磁盘代号为 ST3146356SS,如果你熟悉细节磁盘的代号命名规则,你会轻易判定该磁盘大小为146G 。再根据fdisk 得出的结果可以判定,该服务器是拿两块146G的硬盘做的raid1.
主机重装之后还有一个小问题,检查/dev/md0有22T空间,但是挂载给/data之后显示只有1.7T,是之前的磁盘大小,怀疑是文件系统没随磁盘扩,xfs_info /dev/md0检查,发现/data挂载点的blocks只有一小部分,使用xfs_growfs命令给文件系统进行扩容,空间变为22T,恢复正常。
在线扩容文件系统工具说明:
resize2fs 针对文件系统ext2 ext3 ext4
xfs_growfs 针对文件系统xfs
相关命令:
mdadm -D /dev/md0
xfs_info /dev/md0
xfs_growfs /data -D 5860329600(block size)
lsblk
fdisk -l
blockdev --getsize64 /dev/md0