|
|
|
|
Intel SSDSA2BZ300G3 [Inquiry Unknown] (300GB - 2.5" Solid State - SATA Disk)
|
n/a
|
|
541-2123
|
Marlin 2.5" Bracket
|
n/a
|
|
XRA-ST2CF32G2SSD-N [S]
|
540-7841 [C]
|
32GB Solid State SATA Drive Assembly
|
n/a
|
|
371-4196
|
Intel SSDSA2SH032G1SB [Inquiry Unknown] (32GB - 2.5" Solid State - SATA Disk)
|
n/a
|
|
541-2123
|
Marlin 2.5" Bracket
|
n/a
|
从以上表格可以看出,最大支持300GB SSD固态硬盘。
注:其实上是否最大只支持300GB的SSD?其实不是这样的,经过测试,1TB的SSD固态硬盘都是支持的。
2.4 方案选择
通过以上收集的信息,我们有两种方案可供选择。方案一:将当前计算节点操作系统的四个插槽的SAS盘全部更换为SSD盘。方案二:只是在富余的插槽上新插入一块SSD盘。下面,我们来对比方案一和方案二两种方案的优缺点。
方案一:
优点:
1、系统中仍然只会存在一个RAID5的逻辑盘,这个RAID5由4块SSD组成,这种方式对日后的运维和升级基本没有影响。
2、4块SSD组成的逻辑盘,所以整体的IOPS和MBPS非常高。
缺点:
1、一个计算节点就需要4块SSD盘,所以整体的费用会比较高。
2、整个方案操作过程会比较复杂,风险也相对较高。因为需要在线拔盘,插盘,磁盘重组,且一次只能操作一块硬盘,如果在插盘并重组过程中,其它磁盘出现故障,则会导致整个RAID5损坏,操作系统无法启动。
方案二:
优点:
1、一个计算节点只需要1块SSD盘,所以整体费用比较便宜。
2、整个方案操作过程简单且无风险。因为只会对新插入的SSD进行操作创建成RAID0,并创建VG和文件系统,对操作系统所在的RAID5无任何影响。
缺点:
1、因为新插入的SSD盘会做成RAID0,所以系统中会有一个RAID5,还有一个RAID0。这种定制的方式会影响后期的存储软件升级。同时,日常的巡检工具exachk也会出现误报。
基于综合考虑,最终选择了第二种方案,即每个计算节点只增加1块SSD盘,做成RAID0给DSG软件使用。
3、添加SSD硬盘
3.1 raid卡支持的raid类型
当进行虚拟驱动器(Virtual Drive)RAID创建时,我们需要注意的是RAID对底层物理磁盘个数的要求,具体如下图所示:
|
RAID型号
|
最少磁盘数
|
|
RAID0
|
1
|
|
RAID1
|
2
|
|
RAID5
|
3
|
|
RAID6
|
4
|
在方案中,我们在每个计算节点只插入一块SSD磁盘,对应上面的图可以看出,只能做成RAID0方式,RAID0其实是对磁盘做条带化,而没有数据的保护措施,也即这块磁盘损坏,则对应的RAID0也损坏,会造成数据丢失。而在方案中,我们仍然选择每个计算节点只插入1块SSD盘,是因为DSG软件的数据冗余由DSG软件自身来保证,或者也可以说是DSG软件的丢失不会影响到后期的数据同步工作。
3.2 SSD盘添加过程
将SSD盘插入计算节点的空闲插槽,盘托的硬盘指示灯变绿即表示SSD盘插入成功。这时,在操作系统层面是无法识别到这块新的SSD盘的,只能通过RAID管理软件来识别这块SSD硬盘。
3.3 对SSD盘创建RAID 0
在对新的SSD盘创建RAID0之前,我们必须先了解当前主机上插入的物理硬盘的情况,具体如下所示:
|
[root@sddxdb01 MegaCli]# /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll
Adapter #0
Enclosure Device ID: 252
Slot Number: 0
……(略)
Enclosure Device ID: 252
Slot Number: 5
Enclosure position: 0
Device Id: 12
WWN: 50025388700813CF
Sequence Number: 1
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA
Raw Size: 953.869 GB [0x773bd2b0 Sectors]
Non Coerced Size: 953.369 GB [0x772bd2b0 Sectors]
Coerced Size: 952.742 GB [0x7717c000 Sectors]
Firmware state: Unconfigured(good), Spun Up
Is Emergency Spare : NO
Device Firmware Level: 2B6Q
Shield Counter: 0
Successful diagnostics completion on : N/A
SAS Address(0): 0x4433221106000000
Connected Port Number: 4(path0)
Inquiry Data: S2BANWAG100576K Samsung SSD 850 PRO 1TB EXM02B6Q
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: Foreign
Foreign Secure: Drive is not secured by a foreign lock key
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Solid State Device
Drive Temperature :23C (73.40 F)
PI Eligibility: No
Drive is formatted for PI information: No
PI: No PI
Drive's write cache : Disabled
Drive's NCQ setting : Disabled
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s
Drive has flagged a S.M.A.R.T alert : No
Exit Code: 0x00
[root@sddxdb01 MegaCli]#
|
从以上的命令输出可以看出,新插入的这块SSD硬盘的插槽号为5,但它的"Foreign State"为" Foreign",表示这块新插入的SSD盘自带了RAID配置信息,也即这块SSD硬盘以前被使用过,曾经加入到过其它的RAID组中。
此时,如果直接对该SSD硬盘创建RAID 0,则肯定会失败,报错信息如下:
|
[root@sddxdb01 MegaCli]# /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 [252:5] -a0
The specified physical disk does not have the appropriate attributes to complete
the requested command.
Exit Code: 0x26
[root@sddxdb01 MegaCli]#
|
通过如下命令即可验证是否存在外部的信息:
|
[root@sddxdb01 MegaCli]# /opt/MegaRAID/MegaCli/MegaCli64 -CfgForeign -Scan -a0
There are 1 foreign configuration(s) on controller 0.
Exit Code: 0x00
[root@sddxdb01 MegaCli]#
|
可见,这块SSD盘以前被创建过RAID,所以磁盘中残余有RAID信息,清除掉以前的RAID信息即可:
|
[root@sddxdb01 MegaCli]# /opt/MegaRAID/MegaCli/MegaCli64 -CfgForeign -Clear -a0
Foreign configuration 0 is cleared on controller 0.
Exit Code: 0x00
[root@sddxdb01 MegaCli]#
|
再次确认是否还存在外部信息:
|
[root@sddxdb01 MegaCli]# /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL | egrep -i 'Adapter|Enclosure|Slot|Inquiry|state'
Adapter #0
Enclosure Device ID: 252
Slot Number: 0
Enclosure position: 0
Firmware state: Online, Spun Up
Inquiry Data: HITACHI H106030SDSUN300GA2B01215N77LAB
Foreign State: None
Enclosure Device ID: 252
Slot Number: 1
Enclosure position: 0
Firmware state: Online, Spun Up
Inquiry Data: HITACHI H106030SDSUN300GA2B01214N68GZB
Foreign State: None
Enclosure Device ID: 252
Slot Number: 2
Enclosure position: 0
Firmware state: Online, Spun Up
Inquiry Data: HITACHI H106030SDSUN300GA2B01214N6MX3B
Foreign State: None
Enclosure Device ID: 252
Slot Number: 3
Enclosure position: 0
Firmware state: Online, Spun Up
Inquiry Data: HITACHI H106030SDSUN300GA2B01215N6HL3B
Foreign State: None
Enclosure Device ID: 252
Slot Number: 5
Enclosure position: 0
Firmware state: Unconfigured(good), Spun Up
Inquiry Data: S2BANWAG100576K Samsung SSD 850 PRO 1TB EXM02B6Q
Foreign State: None
Media Type: Solid State Device
[root@sddxdb01 MegaCli]#
|
从以上的命令输出可以看出,插槽号为5的SSD硬盘,外部信息已经被清除,现在可以正常使用该硬盘创建RAID。
|
[root@sddxdb01 MegaCli]# /opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0 [252:5] -a0
Adapter 0: Created VD 1
Adapter 0: Configured the Adapter!!
Exit Code: 0x00
[root@sddxdb01 MegaCli]#
|
可见,在SSD硬盘上创建RAID0成功。
4、创建vg及文件系统
RAID0创建成功后,在操作系统层面就可以看到这块SSD硬盘,命令为/dev/sdb。下面,我们需要将/dev/sdb创建成VG和文件系统来给DSG软件使用。
|
[root@sddxdb01 MegaCli]# pvcreate /dev/sdb1
Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created
[root@sddxdb01 MegaCli]# vgcreate datavg /dev/sdb1
Volume group "datavg" successfully created
[root@sddxdb01 MegaCli]# vgdisplay
--- Volume group ---
VG Name datavg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 952.74 GB
PE Size 4.00 MB
Total PE 243901
Alloc PE / Size 0 / 0
Free PE / Size 243901 / 952.74 GB
VG UUID EF8cbh-rDCd-iQpz-BSS8-VXAZ-k3d2-nmNacV
--- Volume group ---
VG Name VGExaDb
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 6
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size 834.89 GB
PE Size 4.00 MB
Total PE 213731
Alloc PE / Size 200704 / 784.00 GB
Free PE / Size 13027 / 50.89 GB
VG UUID p1Nq1d-5lz7-deCd-1y0k-Yzzi-jeIB-ecgzIh
[root@sddxdb01 MegaCli]#
|
5、性能对比
我们知道使用SSD后,IO性能肯定会比以前有大幅提升,但到底能提升多少,我们最好能进行量化。
下面,我们使用FIO工具进行IO的读测试:
|
# fio --filename=/dev/sdb --direct=1 --rw=read --bs=1m --size=1g --numjobs=4 --group_reporting --name=test-sequential-read
# fio --filename=/dev/sdb --direct=1 --rw=randread --bs=4k --size=1g --numjobs=4 --group_reporting --name=test-rand-read
# fio --filename=/dev/sda --direct=1 --rw=read --bs=1m --size=1g --numjobs=4 --group_reporting --name=test-sequential-read
# fio --filename=/dev/sda --direct=1 --rw=randread --bs=4k --size=1g --numjobs=4 --group_reporting --name=test-rand-read
|
如下图表,是FIO工具进行测试的数据,从得到的数据来看,SSD硬盘随机读的IOPS和MBPS比本地盘提升在30倍以上。
| |
MBPS(顺序读)
|
IOPS(顺序读)
|
MBPS(随机读)
|
IOPS(随机读)
|
|
SSD(RAID0)
|
397564KB/s
|
388
|
74975KB/s
|
18743
|
|
本地盘(RAID5)
|
380608KB/s
|
371
|
2342.7KB/s
|
585
|
整个的IO提升效果还是非常明显的。客户后期将DSG软件迁移至SSD硬盘所在的文件系统中,再也没有出现过因为本地磁盘IO性能影响数据同步延时的情况。
- Exadata 18.1新特性--计算节点升级增强
新的计算节点升级增强能大幅缩短升级花费的时间,最快能减少40%的时间,具体的增强主要体现在以下方面: 1.计算节点操作系统的备份工作. 以前计算节点操作系统的备份工作是在正式升级之前执行,在滚动升级过 ...
- 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍
通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...
- 超千个节点OpenStack私有云案例(1):CERN 5000+ 计算节点私有云
CERN:欧洲核子研究组织 本文根据以下几篇文章整理而来: https://www.openstack.org/summit/tokyo-2015/videos/presentation/unveil ...
- 磁盘工作原理与IO性能分析
最近,在研究如何优化产品设备的磁盘IO性能,需要深入研究磁盘及文件系统原理和工作机制,下面简要总结下关于磁盘方面的东西,下篇文章再分享文件系统的. 机械磁盘结构: 无论哪种机械硬盘,都主要由盘片.磁头 ...
- 采用alluxio提升MR job和Spark job性能的注意点
1. 介绍 2. 实验说明 2.1 实验环境 2.2 实验方法 2.3 实验负载 3. MapReduce on alluxio 3.1 读取10G文件(1G split) 3.2 读取20G文件(1 ...
- 浅谈Java两种并发类型——计算密集型与IO密集型
转载:https://blog.csdn.net/u013070853/article/details/49304099 核心是可以分别独立运行程序指令的计算单元.线程是操作系统能够进行运算调度的最小 ...
- SQL Server中一个隐性的IO性能杀手-Forwarded record
简介 最近在一个客户那里注意到一个计数器很高(Forwarded Records/Sec),伴随着间歇性的磁盘等待队列的波动.本篇文章分享什么是forwarded record,并从原理上谈一 ...
- Linux的IO性能监控工具iostat详解
Linux系统出现了性能问题,一般我们可以通过top.iostat.free.vmstat等命令来查看初步定位问题.其中iostat可以提供更丰富的IO性能状态数据. . 基本使用 $iostat - ...
- 性能调优之访问日志IO性能优化
性能调优之访问日志IO性能优化 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821 ...
随机推荐
- C++中的前置和后置++
在C++中进行操作符重载的时候,前置++返回的是一个引用. 这就设计到了对于基本变量进行前置操作时候的理解了. 例如,对于int类型变量,在进行前置++的时候,是会将i进行加1,然后返回i的引用.而i ...
- Agc_006 E Rotate 3x3
题目大意 给定一个$3\times N$的方阵,每个位置的数恰好是每一个$[1,3\times N]$中的数. 初始时,每个位置$[x,y]$填的是$3(y-1)+x,(1\leq x\leq N,1 ...
- 2017-2018-1 20179215《Linux内核原理与分析》第三周作业
本次作业分为两部分:第一部分为实验.主要目的是进行基于MYKERNEL的一个简单的时间片轮转多道程序内核代码分析.第二部分为阅读教材,了解LINUX进程调度等. 一.实验部分 实验过程如过程所述:使用 ...
- Java中Calendar常用方法总结
//获取当前时刻yyyy-MM-dd HH:mm:ss Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new S ...
- C/C++面试题总结(2)
C++部分: 1.static(静态)变量有什么作用? 2.virtual关键字用法 3.const有哪些作用 或<王道程序员求职宝典>P95 4.new/delete与malloc/fr ...
- Mesos提交任务没有被执行
当通过marathon提交了一个任务后,发现一直处于waiting状态: 回到mesos,执行MASTER=$(mesos-resolve `cat /etc/mesos/zk`) & me ...
- 第四章——Lock的使用
本章主要是讲解:使用Lock对象也能实现同步效果,而且使用起来更方便. 主要掌握两个方面: ReentrantLock类的使用 ReenTrantReadWriteLock类的使用
- Spring示例工程
---------------siwuxie095 创建一个基于 Spring IoC 的小程序的步骤: 建立 Spring 工 ...
- Ubuntu12.04安装 vsftpd
Ubuntu12.04 FTP 的配置 ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd 2: 配置vsftpd 2.1 修改vs ...
- Luogu 3825 [NOI2017]游戏
Luogu的spj现在挂了,要去其他OJ提交. 2-SAT 发现如果不考虑$x$的情况,这就成为一个2-SAT的裸题了,我们有$O(n + m)$的方法可以解决它. 那加上$x$的情况怎么弄……岂不是 ...
|