SSD如何设置预留空间OP(Over-Provision)
Over-Provision操作指南
SSD OP全称是(Over-Provision), 中文名预留空间, 指用户不可操作的容量,大小为SSD实际容量减去用户可用容量。简单来说over-provision可以提高ssd的wear-leveling,减少写放大,提高随机写的性能, 提高ssd的使用寿命. 关于预留空间OP(Over-Provision)作用和性能分析这里就不在多说,网上很多文章有讲, 但设置ssd op的方法, 网上找到的帖子很少, 最后在intel的一个pdf上找到了, 也解了心中的疑惑, 现在分享下:)
想看原文的可以goto
首先ssd的op必须实在一个完全clean的ssd上分配, 所以你拿到一个ssd在设置op之前,要确保它是刚从包装盒里拿出来的, 否则你需要先secrue erase.
有三种给ssd预留的方式:
- 分区时剩余一部分空间不使用
Limiting the logical volume capacity during partitioning in OS(user will see full capacity in Disk Manager or fdisk)
- 限制应用只使用一定范围的LBA, 但你不能在一个完整的LBA上创建文件系统, 这样op会失效.
Limiting an applation to use only a certain LBA range. Please note it will not work for the scenario in which the filesystem is deployed on full LBA range
- 从驱动层限制最大的LBA, 这样在os层面上, user看不到这部分容量
Limiting the Maximum LBA on the drive level, so that in OS, it will appear as a lower-capacity drive
方法1原文没有给出方法, 我理解就是对ssd secure erase[label: trim ssd], 然后分区剩余一部分空间就可以了, 有人说预留25%性能最好, 这个也得参考下性价比.
#sudo hdparm --user-master u --security-set-pass 123 /dev/sdx
#sudo hdparm --security-erase 123 /dev/sdl
#parted /dev/sdx mklabel gpt mkpart op 0% 75%
方法3对于intel的ssd可以使用内部工具isdct(Intel SSDs Data Center Tool) 和第三方工具.
isdct工具
isdct工具同时支持SATA 和 NVMe Intel SSD, 详细操作请见官方资料:
isdct连接 && 使用指导
第三方工具
SATA ssd推荐使用hdparm:
在使用之前首先要secure erase[label: trim ssd]
#sudo hdparm --user-master u --security-set-pass 123 /dev/sdx
#sudo hdparm --security-erase 123 /dev/sdl
接着设置op
#sudo hdparm -N /dev/sdx
(查找对打的sector count)
#sudo hdparm -NpXXXXXX -yes-i-known-what-i-am-doing /dev/sdx
(这个就是设置host-protected area, 用户可见的sector紧跟着Np)
NVMe SSD推荐使用nvme-cli 开源工具, 使用方法参见man pages
SSD如何设置预留空间OP(Over-Provision)的更多相关文章
- 保护SSD,设置Chrome浏览器临时文件夹到ramdisk分区
很多用低端/山寨SSD的朋友都用Ramdisk来保护硬盘,一般都把系统temp目录和IE浏览器临时文件夹目录设到Ramdisk分区了. 最近用谷歌的chrome浏览器,发现浏览网页时候硬盘灯 ...
- 【转】花开正当时,十四款120/128GB SSD横向评测
原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站 ...
- 大数据小视角5:探究SSD写放大的成因与解决思路
笔者目前开发运维的存储系统的服务器都跑在SSD之上,目前单机服务器最大的SSD容量有4T之多.(公司好有钱,以前在实验室都只有机械硬盘用的~~)但SSD本身的特性与机械硬盘差距较大,虽然说在性能上有诸 ...
- 全面理解SSD和NAND Flash
Flash Memory又叫做闪存,是一种非易失性存储器.非易失性是指断电之后数据不会丢失,这里就涉及到断电保护(后面详细讲解). 总体思路 1.NAND Flash的用途. 2.NAND Flash ...
- SSD基本工作原理
SSD主要由SSD控制器,FLASH存储阵列,板上DRAM(可选),以及跟HOST接口(诸如SATA,SAS, PCIe等)组成. SSD主控通过若干个通道(channel)并行操作多块FLASH颗粒 ...
- 为SSD编程(4)——高级功能和内部并行
原文 http://codecapsule.com/2014/02/12/coding-for-ssds-part-4-advanced-functionalities-and-internal-pa ...
- Mware vCenter Server 识别固态硬盘为(非SSD)是什么原因?
人工定义一下: 用root登录进ESXi控制台:esxcli storage nmp device list #列出储存清单esxcli storage nmp satp rule add -s VM ...
- Android 初始化Setup Wizard——Provision
今天说说Provision这个APK,可能很多朋友都不知道有这个APK存在.Provision的作用很简单,就是一个系统初始化引导程序,原生的Android里面Provision只做了一件事,就是写入 ...
- [置顶] Android Provision (Setup Wizard)
Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一 个冗余的实现.Android中的Provision其实 ...
随机推荐
- Link-Cut-Tree学习(LCT)
Link-Cut-Tree学习(LCT) 真不敢想象我居然学会LCT了,但是我仍然不想写一篇博客来梳理 我怕一梳理自己又不懂了 但是作为一名朴实沉毅的cjoier,我决定小小的梳理一下,并不打算很精致 ...
- python学习二十四天函数参数之默认参数
函数参数就是向函数传递参数,可以传递一个,可以是更多个,有的参数有值,有的没有,函数可以设置默认参数,默认参数必须放参数最后面. 1,不传递参数,设置默认参数 def hello(a,b,c='123 ...
- LeetCode 852. Peak Index in a Mountain Array(C++)
Let's call an array A a mountain if the following properties hold: A.length >= 3 There exists som ...
- iOS crash log 解析
iOS开发中,经常遇到App在开发及测试时不会有问题,但是装在别人的设备中会出现各种不定时的莫名的 crash,因为iOS设备会保存应用的大部分的 crash Log,所以可以通过 crash Log ...
- kafka2.3集群搭建
环境: 3台centos7.4 3台zookeeper3.4.14 1. wget http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.11-2.3 ...
- Sass-数字运算
在 Sass 运算中数字运算是较为常见的,数字运算包括前面介绍的:加法.减法.乘法和除法等运算.而且还可以通过括号来修改他们的运算先后顺序.和我们数学运算是一样的,一起来看个示例. .box { wi ...
- Hibernate纯sql查询VO对象封装
hibernate 纯sql查询返回结果集(未关联映射)组装VO的问题//须保证别名字段与Vo字段一致 //引号中为vo对象属性需与sql查询返回字段一致.addScalar("chname ...
- flask01
-python中的web框架 -a:socket服务端 b:路由转发 c:模板渲染 -Django:a:用了别人的 b,c自己写的 -Flask:a:用了别人的 b自己写的,c:用了别人的: jinj ...
- JS中arguments对象
与其他程序设计语言不同,ECMAScript 不会验证传递给函数的参数个数是否等于函数定义的参数个数. 开发者定义的函数都可以接受任意个数的参数而无需跟定义的函数相匹配(根据 Netscape 的文档 ...
- IPC机制总结
IPC机制: 1. 多进程概念: 2. 序列化机制和Binder: 3. 进程间通信:Bundle.文件共享.AIDL.Messenger.ContentProvider.Socket: 操作系统的设 ...