公司弄了台DELL刀片服务器,硬盘只有1T,需要扩展空间。一直不懂怎样配置RAID,所以抽空写此篇幅记录下在Linux下配置磁盘阵列RAID的过程。
确认服务器类型
DELL刀片服务器的硬盘托架有几种不同的型号,需要确认服务器类型才能买对硬盘托架。
确认配置RAID类型
根据硬盘资源的数量确认需要设置的RAID类型,因为我们只有4块1.2T的硬盘,考虑性能及数据的安全性,此次配置我选择的是RAID5。
配置RAID
RAID配置可以通过bios去配置,也可以通过MegaCli64命令来配置,我选择后者。
一、 下载MegCli,目前针对公司DB数据库是IBM的服务器,直接从IBM官方下载,如果
其它服务器的,使用各官方下载或者 LSI网站上进行相关下载。一般来说,是通用的。这个包适用32 /64位操作系统平台
下载地址:ftp://download2.boulder.ibm.com/ecc/sar/CMA/XSA/ibm_utl_sraidmr_megacli-8.00.48_linux_32-64.zip
二、 安装
#unzip ibm_utl_sraidmr_megacli-8.00.48_linux_32-64.zip
#cd linux
# rpm -ivh Lib_Utils-1.00-09.noarch.rpm MegaCli-8.00.48-1.i386.rpm
说明:安装完毕之后MegaCli64所在路径为/opt/MegaRAID/MegaCli/MegaCli64,在此路径下可以运行MegaCli64工具,切换到其它路径下则不能执行,此时为了使用方便,可以考虑将/opt/MegaRAID/MegaCli/MegaCli64追加到系统PATH变量,或者像下面这样做(建议):
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /bin/MegaCli64
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /sbin/MegaCli64
命令使用:
#/opt/MegaRAID/MegaCli/
MegaCli64 -LDInfo -Lall -aALL 查raid级别
MegaCli64 -AdpAllInfo -aALL 查raid卡信息
./MegaCli64 -PDList -aALL 查看硬盘信息
MegaCli64 -AdpBbuCmd -aAll 查看电池信息
MegaCli64 -FwTermLog -Dsply -aALL 查看raid卡日志
MegaCli64 -adpCount 【显示适配器个数】
MegaCli64 -AdpGetTime –aALL 【显示适配器时间】
MegaCli64 -AdpAllInfo -aAll 【显示所有适配器信息】
MegaCli64 -LDInfo -LALL -aAll 【显示所有逻辑磁盘组信息】
MegaCli64 -PDList -aAll 【显示所有的物理信息】
MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充电状态】
MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】
MegaCli64 -AdpBbuCmd -GetBbuCapacityInfo -aALL【显示BBU容量信息】
MegaCli64 -AdpBbuCmd -GetBbuDesignInfo -aALL 【显示BBU设计参数】
MegaCli64 -AdpBbuCmd -GetBbuProperties -aALL 【显示当前BBU属性】
MegaCli64 -cfgdsply -aALL 【显示Raid卡型号,Raid设置,Disk相关信息】
3.磁带状态的变化,从拔盘,到插盘的过程中。
Device |Normal|Damage|Rebuild|Normal
Virtual Drive |Optimal|Degraded|Degraded|Optimal
Physical Drive |Online|Failed –> Unconfigured|Rebuild|Online
4.查看磁盘缓存策略
MegaCli64 -LDGetProp -Cache -L0 -a0
or
MegaCli64 -LDGetProp -Cache -L1 -a0
or
MegaCli64 -LDGetProp -Cache -LALL -a0
ro
./MegaCli64 -LDGetProp -Cache -LALL -aALL
ro
MegaCli64 -LDGetProp -DskCache -LALL -aALL
5.设置磁盘缓存策略
缓存策略解释:
WT (Write through
WB (Write back)
NORA (No read ahead)
RA (Read ahead)
ADRA (Adaptive read ahead)
Cached
Direct
例子:
MegaCli64 -LDSetProp WT|WB|NORA|RA|ADRA -L0 -a0
or
MegaCli64 -LDSetProp -Cached|-Direct -L0 -a0
or
enable / disable disk cache
MegaCli64 -LDSetProp -EnDskCache|-DisDskCache -L0 -a0
6.创建一个 raid5 阵列,由物理盘 2,3,4 构成,该阵列的热备盘是物理盘 5
MegaCli64 -CfgLdAdd -r5 [32:2,32:3,32:4] WB Direct -Hsp[32:5] -a0
解释下参数:
-CfgLdAdd 增加虚拟磁盘,创建raid
-r0 创建raid0 例如:-r5 创建raid5
[22:0] [Enclosure Device ID : Slot Number] 例如: [1:2,1:3,1:4] 使用逗号分隔,对多盘进行操作
7.创建阵列,不指定热备
./MegaCli64 -CfgLdAdd -r0 [32:2,32:3] WB RA Direct -a0
8.删除阵列
MegaCli64 -CfgLdDel -L1 -a0
9.在线添加磁盘
./MegaCli64 -LDRecon -Start -r5 -Add -PhysDrv[1:4] -L1 -a0
10.阵列创建完后,会有一个初始化同步块的过程,可以看看其进度。
MegaCli64 -LDInit -ShowProg -LALL -aALL
或者以动态可视化文字界面显示
MegaCli64 -LDInit -ProgDsply -LALL -aALL
11.指定第 5 块盘作为全局热备
MegaCli64 -PDHSP -Set [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -a0
12.指定为某个阵列的专用热备
MegaCli64 -PDHSP -Set [-Dedicated [-Array1]] [-EnclAffinity] [-nonRevertible] -PhysDrv[1:5] -a0
14.删除全局热备
MegaCli64 -PDHSP -Rmv -PhysDrv[32:5] -a0
15.将某块物理盘下线/上线
MegaCli64 -PDOffline -PhysDrv [1:4] -a0
MegaCli64 -PDOnline -PhysDrv [1:4] -a0
16.查看物理磁盘重建进度
MegaCli64 -PDRbld -ShowProg -PhysDrv [1:5] -a0
或者以动态可视化文字界面显示
MegaCli64 -PDRbld -ProgDsply -PhysDrv [1:5] -a0
硬盘格式化分区
因为通过RAID5配置后的硬盘空间有3.5T,我希望配置成一个盘3.5T,但fdisk命令只支持最大2T,parted命令可以支持大于2T,所以最终我确认用parted命令来实现硬盘分支。
[root@Demo ~]# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands. //提示help会列举命令
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resize NUMBER START END resize partition NUMBER and its file system
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU Parted
(parted) mklabel gpt //将MBR磁盘格式化为GPT
(parted) mkpart /dev/sdb1 //分区1
File system type? [ext2]? ext4 //文件系统类型
Start? 0 //柱头开始
End? 10GB //分区结束位置
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore
(parted) print //打印分区
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0GB 10000MB /dev/sdb1
设置开机自挂载
硬盘格式化后,需要开机自动挂载,配置方式如下:
挂载
[root@Demo ~]# mount /dev/sdb1 /home/data
开机自挂载
vim /ets/fstab
添加
/dev/sdb1 /home/data ext4 defaults 0 0