大家好,欢迎来到IT知识分享网。
- MegaCli的安装
- 创建raid0,1,5
-
- 创建raid0
- 分区
- fdisk 创建分区
- parted 创建分区
- 格式化分区
- 挂载
- 临时挂载
- 开机自动挂载(永久挂载)
- 删除分区
- 下线磁盘
- 上线磁盘
- 删除raid
- 刷新磁盘信息
- raid0 添加硬盘
- 常见问题处理
- Raid 1
- 添加热备
- Raid5
- Raid5 级别迁移
-
- 检查
- RAID卡策略的更改
- 其他命令
用MegaCli做阵列,需要注意的参数
Adapter #0 阵列卡号,适配器编号
Enclosure Device ID: 32 raid卡的ID号
Slot Number: 0 物理磁盘的slot号,磁盘位置
我们在做raid时,必须要使用上方的参数
指定硬盘的位置时,[Enclosure Device ID: Slot Number]
例如:指定0号盘,[32:0]
指定raid使用的适配器的编号,-aN
例如:指定0号适配器,-a0
MegaCli的安装
下载rpm包
wget http://mirror.cogentco.com/pub/misc/MegaCli-8.07.14-1.noarch.rpm
安装
rpm -ivh MegaCli-8.07.14-1.noarch.rpm
安装完,就会在/opt/下创建个MegaRAID目录,文件都在里面
添加软连接
ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli64
查看帮助手册
MegaCli64 –h
显示所有适配器信息 通常注意Adapter即可
MegaCli64 -AdpAllInfo -aAll|grep "Adapter"
查看所有物理硬盘的Enclosure Device ID及Slot Number
MegaCli64 -PDList -aALL | egrep 'Enclosure Device ID|Slot Number'
查看所有物理硬盘状态
MegaCli64 -PDList -aALL|egrep 'Firmware state'
查看所有物理硬盘的Foreign信息
MegaCli64 -PDList -aALL|egrep 'Foreign State'
若Foreign State不是None ,则需要清除外来配置,操作如下
#扫描外来配置的个数
MegaCli64 -cfgforeign -scan -a0
#清除外来配置
MegaCli64 -cfgforeign -clear -a0
#再次扫描外来配置的个数
MegaCli64 -cfgforeign -scan -a0
查看指定的盘的详细信息(本文示例,查看1号盘)
MegaCli64 -pdInfo -PhysDrv[32:1] –aALL
查看逻辑盘详细信息
MegaCli64 -LdPdInfo –aALL
查看raid级别及查看raid是由哪些硬盘组成的
MegaCli64 -LdPdInfo -aALL|more
显示适配器个数
MegaCli64 –adpCount
创建raid0,1,5
MegaCli64 -CfgLdAdd -rX [Enclosure Device ID : Slot Number, Enclosure Device ID : Slot Number] –aN
# -r :指定raid类型、 X 是 RAID级别 、N 是 adapter ID
创建raid0
MegaCli64 -CfgLdAdd –r0[32:1,32:2] -a0
若清除外来配置之后创建raid仍报错
执行该命令调整磁盘状态为Unconfigured(good), Spun Up
MegaCli64 -PDMakeGood -Physdrv [32:1,32:2] -force -a0
创建成功
会有一个初始化同步块的过程,可以看看其进度:
MegaCli64 -LDInit -ShowProg -LALL –aALL
查看当前的raid配置信息,可以看到Target Id: 0,RAID Level: Primary-0
分区
创建raid之后进行分区操作
查看此时所有可用块设备的信息
fdisk 创建分区
fdisk /dev/sdb ,n->p->回车->回车-> +100M(要划的分区大小,回车即为默认使用全部大小) ->t->回车->fd->wq
parted 创建分区
由于创建raid0后磁盘大于2T,无法使用fdisk划分大于2T的分区,这里使用parted命令进行分区
Parted命令选择操作磁盘
parted命令后跟上欲操作磁盘的名字即可选择此设备进行操作
parted /dev/sdb
新建磁盘标签类型为GPT
因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt
mklabe gpt
(parted -s /dev/sdb mklabel gpt)
分区
命令格式
mkpart PART-TYPE [FS-TYPE] START END
PART-TYPE(分区类型)
o primary
主分区
o logical
逻辑分区
o extended
扩展分区
• FS-TYPE(文件系统类型)
o ext4
o ext3
o ext2
o xfs
o 其他......
• START
设定磁盘分区起始点;可以为0,numberMiB/GiB/TiB;
o 0
设定当前分区的起始点为磁盘的第一个扇区;
o 1G
设定当前分区的起始点为磁盘的1G处开始;
• END
设定磁盘分区结束点;
o -1
设定当前分区的结束点为磁盘的最后一个扇区;
o 10G
设定当前分区的结束点为磁盘的10G处;
将/dev/sdb整个空间分给同一个分区
parted -s /dev/sdb mkpart primary "0 -1"
格式化分区
因为整个/dev/sdb只分了一个区,则这个分区名默认会分配为/dev/sdb1;使用mkfs命令将/dev/sdb1分区格式化为ext4
然后创建挂载目录进行挂载
挂载
临时挂载
创建挂载目录
mkdir /gfsdata01
临时挂载分区
mount /dev/sdb1 /gfsdata01
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/root_vg-lv_root 89G 2.6G 82G 4% /
devtmpfs 126G 0 126G 0% /dev
tmpfs 126G 0 126G 0% /dev/shm
tmpfs 126G 2.0M 126G 1% /run
tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/sda1 976M 216M 694M 24% /boot
/dev/sda7 99G 61M 94G 1% /home
/dev/sda8 62G 53M 59G 1% /tmp
/dev/sda6 99G 61M 94G 1% /app
tmpfs 26G 0 26G 0% /run/user/1014
tmpfs 26G 0 26G 0% /run/user/0
/dev/sdb1 17T 20K 16T 1% /gfsdata01
开机自动挂载(永久挂载)
即修改/etc/fstab文件。
echo '/dev/sdb1 /gfsdata01 ext4 defaults 0 0' >>/etc/fstab
删除分区
rm NUMBER:NUMBER即为parted子命令p回显的Number对应的数字
下线磁盘
下线前查看raid状态
查看raid状态 Optimal(最优的)
MegaCli64 ldinfo lall a0
下线
MegaCli64 -PDOffline -PhysDrv [32:2] -a0
查看此时磁盘状态
MegaCli64 -PDList –aALL|egrep 'Firmware state'
查看raid0状态 Offline (离线的)
MegaCli64 ldinfo lall a0
上线磁盘
再将该磁盘上线
MegaCli64 -PDOnline -PhysDrv [32:2] -a0
查看重建进度
MegaCli64 -PDRbld -ShowProg -PhysDrv [32:2] -a0
以动态可视化文字界面显示
查看是否已上线
MegaCli64 -PDList –aALL|egrep 'Firmware state'
查看raid状态 Optimal(最优的)
MegaCli64 ldinfo lall a0
删除raid
MegaCli64 -cfglddel -L0 -a0
注意:执行删除操作之前先将分区卸载 umount /dev/sdb1
<1>清除当前所有的raid组的配置(慎用)
MegaCli64 -cfgclr -a0
<2>删除指定的raid组(即逻辑盘信息)
一定要先查看 逻辑盘详细信息
MegaCli64 -LdPdInfo –aALL
注意Target Id,其代表逻辑盘的id,L +Target Id为指定逻辑盘
L0 代表第一个逻辑盘
L1 代表第二个逻辑盘
依次类推
若执行删除操作,打印以下信息,则说明是有缓存,需要加上-force参数,再次删除
Virtual Disk is associate with Cache Cade. Please Use force option to delete #这是说有缓存,要强制删除
Exit Code: 0x01
MegaCli64 -cfglddel -L0 -force -a0
刷新磁盘信息
发现删除raid之后,使用fdisk –l 或者lsblk看不到原来的磁盘
Lsblk
这时候需要将磁盘的状态改回JBOD再看就有了
MegaCli64 -PDMakeJBOD -PhysDrv[32:1,32:2] -a0
lsblk
raid0 添加硬盘
在原来已有的硬盘的基础上添加一块磁盘进行扩容
MegaCli64 -LDRecon -Start -r0 -Add -PhysDrv[32:2] -L0 -a0
查看重建进度
MegaCli64 ldinfo lall a0|grep Reconstruction
常见问题处理
1, Firmwarestate:Unconfigured(good), Spun down
解决方法:
①重新热拔插指定硬盘,该状态会变成Firmware state:Unconfigured(good), Spun Up
②创建raid后磁盘状态也会由Spun down变成SpunUp
2, Firmware state: Unconfigured(bad)
解决办法:
MegaCli64 -PDMakeGood -PhysDrv[E:S] -a0 固件状态会由Unconfigured(bad)变成Unconfigured(good), Spun Up
MegaCli64 -pdgetmissing -a0 检查掉线硬盘,掉线硬盘进入Rebuild
MegaCli64 -CfgForeign -Import -a0 重新导入raid配置
MegaCli64 -PDRbld -ShowProg -PhysDrv[32:2] –a0 查看重建进度
3, Firmware state: failed
解决办法:
出现failed状态的硬盘大多已损坏,建议更换(或报修);但可以强制上线。
强制上线步骤如下:
可以先将磁盘下线。 # MegaCli64 -PDOffline-PhysDrv[E:S] -a0
然后再上线。 # MegaCli64 -PDOnline -PhysDrv[E:S] -a0
4, 以下状态的解决办法:
Foreign State: Foreign
Foreign Secure: Drive is notsecured by a foreign lock key
办法一:可以清除恢复状态(慎用)
MegaCli64 -CfgForeign -Clear -a0
办法二:导入配置,恢复虚拟磁盘组
MegaCli64 -CfgForeign -import -a0
Raid 1
创建raid 1
MegaCli64 -CfgLdAdd -r1[32:1,32:2] -a0
查看当前的raid配置信息,可以看到Target Id: 0,RAID Level: Primary-1
MegaCli64 ldinfo l0 a0
然后创建分区和挂载,操作和前面raid0的类似
下线一个磁盘
MegaCli64 -PDOffline -PhysDrv [32:2] -a0
发现raid状态改变 Degraded (已降级)
MegaCli64 ldinfo l0 a0
重新将下线的磁盘上线
MegaCli64 -PDOnline -PhysDrv [32:2] -a0
然后观察发现状态已正常,正在初始化检查一致性
删除操作和raid0相同
添加热备
#######全局热备
MegaCli64 -PDHSP -Set [-EnclAffinity] [-nonRevertible] -PhysDrv[32:2] -a0
删除热备
MegaCli64 -PDHSP -Rmv -PhysDrv[32:2] -a0
#######局部热备
指定某个盘-PhysDrv[32:3] 为某个raid设备 -Array0 的热备
MegaCli64 -PDHSP {-Set [-Dedicated [-Array0]] [-EnclAffinity] [-nonRevertible]} -PhysDrv[32:3] -a0
查看raid信息发现热备已添加
MegaCli64 ldinfo l0 a0
创建时指定热备
MegaCli64 -CfgLdAdd -r1 [32:1,32:2] -Hsp[32:3] -a0
下线一个磁盘查看热被否生效
发现状态为正在重建说明热备没问题
Raid5
创建raid 5
MegaCli64 -CfgLdAdd -r5 [32:1,32:2,32:3] -a0
创建完可以进行分区挂载
下线上线热备操作和raid1的类似
Raid5 级别迁移
Raid0级别转换成raid5级别
原来raid0两块盘,添加一块盘转成raid5
MegaCli64 -ldrecon -start -r5 -add -physdrv[32:3] -l0 -a0
查看进度
MegaCli64 ldinfo l0 a0|grep Reconstruction #该操作可能要花费很长时间
检查
查看磁盘是否有问题
MegaCli64 -PDList -aALL|grep Error
这是查看所有磁盘信息的命令,然后grep错误信息,看下面过滤出来的信息,这是我一个R420的机器。
Media Error Count: 0 Other Error Count: 0 #这两个数值来确定阵列中磁盘是否有问题;Medai Error Count: #表示磁盘可能错误,可能是磁盘有坏道,这个值不为0值得注意,数值越大,危险系数越高,
Other Error Count: #表示磁盘可能存在松动,可能需要重新再插入
当然实际生产环境中,如果想长期的检查磁盘是否可能要出问题了,还是建议去/var/log/message里面去检测信息,因为用MegaCli这种方式检测硬盘,当然硬盘出问题了可以报出来,但是就算你换了硬盘,再次检测会发现计数器还是没有清零,这是因为raid缓存的问题,但是这个问题需要重启服务器才能解决,所以说用这种方式做一个常规性的监控方式的话,这个问题还是要考虑进来的。
查看磁盘缓存策略
MegaCli64 -LDGetProp -Cache -L0 -a0
#输出内容表示的意思:Adapter 0-VD 0(target id: 0): 为磁盘适配器号,0代表第一个,Cache Policy:后面是缓存策略
一:WriteBack与WriteThrough
1.WriteBack:进行写操作时,将数据写入RAID卡缓存,并直接返回,RAID卡控制器将在系统负载低或者Cache满了的情况下把数据写 入 硬盘。该设置会大大提升RAID卡写性能,绝大多数的情况下会降低系统IO负载。 数据的可靠性由BBU(Battery Backup Unit)电池 进行保证
2.WriteThrough: 数据写操作不使用缓存,数据直接写入磁盘。RAID卡写性能下降,在大多数情况下该设置会造成系统IO负载上升;
二: ReadAheadNone, ReadAdaptive, ReadAhead.
ReadAheadNone: 不开启预读。这是默认的设置
ReadAhead: 在读操作时,预先把后面顺序的数据加载入Cache,在顺序读取时,能提高性能,相反会降低随机读的性能。
ReadAdaptive: 自适应预读,当Cache memory和IO空闲时,采取顺序预读,平衡了连续读性能及随机读的性能,需要消耗一定的计算能力。
三、WT(Write through),WB(Write back),NORA(No read ahead),RA(Read ahead),ADRA(Adaptive read ahead),Cached,Direct
Write Policy(写入策略) 将高速缓存方法设置为回写或通过写。
* 在Write-through(通过写)高速缓存中,当磁盘子系统已接收到一个事务中的所有数据时,该控制器将数据传输完成信号发送给主机。
* 在Write-back(回写)高速缓存中,当控制器高速缓存已接收到某个事务中的所有数据时,该控制器将数据传输完成信号发送给主机。
Read-ahead(预读)启用逻辑驱动器的SCSI预读功能。 可将此参数设为No-Read-Ahead(非预读)、Read-ahead(预读)或Adaptive(自适应)。 默认设置为Adaptive(自适应)。
* No-Read-Ahead(非预读)指定控制器在当前逻辑驱动器中不使用预读方式。
* Read-ahead(预读)在读操作时,预先把后面顺序的数据加载入Cache,在顺序读取时,能提高性能,相反会降低随机读的性能。
* Adaptive(自适应)指定如果最近两次的磁盘访问出现在连续的扇区内,则控制器开始采用Read-ahead(预读)。 如果所有的读取请求都是随机的,则该算法回复到No-Read-Ahead(非预读),但仍要判断所有的读取请求是否有按顺序操作的可能。当Cache memory和IO空闲时,采取顺序预读,平衡了连续读性能及随机读的性能,需要消耗一定的计算能力。
Cache Policy(高速缓存策略) 适合在特定逻辑驱动器上读取。 它并不影响Read ahead(预读)高速缓存。
* Cached I/O(高速缓存I/O)指定所有读取数据在高速缓存存储器中缓存。
* Direct I/O(直接I/O)指定读取数据不在高速缓存存储器中缓存。 此为默认设置。 它不会代替高速缓存策略设置。数据被同时传送到高速缓存和主机。 如果再次读取同一数据块,则从高速缓存存储器读取
四、Write Cache OK if Bad BBU和 No Write Cache if Bad BBU
No Write Cache if Bad BBU: 如果BBU出问题,则关闭Write Cache。由WriteBack自动切换到WriteThrough模式。如果没有特殊要求,强烈建议采用该设置,以确保数据的安全。
Write Cache OK if Bad BBU: 如果BBU出问题,依然启用Write Cache. 这是不推荐的设置,BBU出问题将无法保证断电情况下数据的正常,如果此时依然采用WriteBack模式,遇到断电将发生数据丢失。除非有UPS作额外保证,不然不推荐采用这个设置。
之前创建raid为指定缓存策略,使的是默认缓存策略,不同型号的服务器默认缓存策略也是不一样的
RAID卡策略的更改
#修改WriteBack:
/MegaCli64 -LDSetProp -WB -Lall -aAll
#修改WriteThrough:
MegaCli64 -LDSetProp -WT -Lall -aAll
#修改No Write Cache if Bad BBU:
MegaCli64 -LDSetProp -NoCachedBadBBU -Lall -aAll
#修改Write Cache OK if Bad BBU:
MegaCli64 -LDSetProp -CachedBadBBU -Lall -aAll
#或者其他:
MegaCli64 -LDSetProp WT|WB|NORA|RA|ADRA -L0 -a0
MegaCli64 -LDSetProp -Cached|-Direct -L0 -a0
其他命令
手工配置初始化
MegaCli64 -LDInit -start –L0 -a0 #快速初始化
MegaCli64 -LDInit -start -full –L0 -a0 #完全初始化
MegaCli64 -LDInit -progdsply -L0 -a0 #显示初始化的进度
MegaCli64 -LDInit -abort -L0 -a0 #结束完全初始化
raid电池操作:
MegaCli/MegaCli64 -AdpBbuCmd -BbuLearn a0 #手动充电
MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL #查看充电状态
MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL #查看充电进度百分比
查看Megacli的log
MegaCli64 -FwTermLog dsply -a0 > /tmp/Megacli.log
查看一块硬盘是否做了raid
MegaCli/MegaCli64 -LDInfo -LAll -aAll|grep 'Is VD emulated'
Is VD emulated : No #No就是没做raid
/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -LAll -aAll|grep 'Is VD emulated'
Is VD emulated : Yes #yes就是做了raid
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31859.html