我们正在研究在一组 SSD 磁盘上使用 BtrFS,我被要求验证 BtrFS 确实在删除文件时执行 TRIM 操作。到目前为止,我一直无法验证 TRIM 命令是否已发送到磁盘。
我知道 BtrFS 不被视为生产就绪,但我们喜欢最前沿的技术,因此我正在测试它。服务器是 Ubuntu 11.04 服务器 64 位版本(mkfs.btrfs 版本 0.19)。我已经安装了 Linux 3.0.0 内核,因为BtrFS 更改日志指出在 Ubuntu 11.04 (2.6.38) 附带的内核中批量 TRIM 不可用。
这是我的测试方法(最初采用http://andyduffell.com/techblog/?p=852,经过修改以与 BtrFS 一起使用):
for i in {0..10} ; do let A="$i * 65536" ; hdparm --trim-sector-ranges $A:65535 --please-destroy-my-drive /dev/sda ; done./sectors.pl |grep + | tee sectors-$(date +%s)fdisk /dev/sdamkfs.btrfs /dev/sda1sudo mount -t btrfs -o ssd /dev/sda1 /mnt我们在 Linux(当前为 2.6.37)上使用 RAID1+0 和 md 创建一个 md 设备,然后使用 LVM 在设备之上提供卷管理,然后使用 ext4 作为我们在 LVM 卷组上的文件系统。
使用 SSD 作为驱动器,我们希望看到 TRIM 命令通过层(ext4 -> LVM -> md -> SSD)传播到设备。
看起来最近的 2.6.3x 内核添加了许多与 SSD 相关的新 TRIM 支持,包括对 Device Mapper 场景的更多覆盖,但我们似乎仍然无法使其正确级联。
这还有可能吗?如果是这样,如何?如果没有,是否有任何进展?
我打算购买一台采用 RAID 10 固态硬盘的服务器 (Dell PowerEdge R740),我的首要任务是写入性能和数据完整性。它将运行 Linux。SSD 具有带断电保护的写入缓存。
这些似乎是我的 RAID 选项:
我的问题:
相关问题:
我们为客户托管 VPS。每个客户 VPS 都会在标准主轴硬盘上获得一个 LVM LV。如果客户要离开,我们会将这个 LV 清零,以确保他们的数据不会泄露给其他客户。
我们正在考虑将 SSD 用于我们的托管业务。鉴于 SSD 具有“磨损均衡”技术,这是否会使归零变得毫无意义?鉴于我们不能允许客户数据泄露给另一个客户,这是否会使这个 SSD 想法不可行?
我的理解是 SSD 的写入数量有限。由于跨驱动器的奇偶校验信息,RAID5 执行多次写入。因此推理表明 RAID5 会以更快的速度杀死并降低固态驱动器的性能。
这篇文章中的以下陈述使我认为我的上述推理不完全理解或可能不正确。
高耐用性 SSD 的另一个利基是奇偶校验 RAID 阵列。SLC 由于其固有的卓越写入延迟和耐用性,非常适合此类应用。
我在 SSD 和 HDD 上安装了一个 Linux 服务器系统,用于用户数据。由于 SSD 上有剩余空间,我想将其用作 HDD 的读取缓存。
查看可能性,我发现:
dm-cache:根据https://www.redhat.com/en/blog/improving-read-performance-dm-cache在缓存显示性能改进之前需要大量读取。我认为在我的用例中这不是一个好的策略。
lvmcache:建立在 dm-cache 之上,我需要将 SSD 和 HDD 放入一个 LV。我想保持缓存透明,这样我就可以轻松地将 HDD 放入另一个系统,而无需先执行 LVM 魔术。
Bcache:我需要为 Bcache 格式化硬盘。不是我想要的。
Flashcache:听起来像我想要的(只需打开它),但根据https://github.com/facebookarchive/flashcache不再积极维护。
EnhanceIO:建立在 Flashcache 上,但自 2015 年以来已失效。
有没有类似于 Flashcache 或 EnhanceIO 的东西,但仍然积极维护?
目前可用的任何硬件 RAID 控制器都支持TRIM吗?
如果没有,是否有任何制造商有支持 TRIM 的目标日期?
我应该关心安装在性能敏感工作站中的 SSD 的 TRIM 吗?
在您提出建议之前,是的,软件 RAID 会回避这个问题,但我的要求不允许软件 RAID。
编辑:目前的答案似乎是“没有 RAID 控制器支持 TRIM”。
更新: 截至 2012 年 8 月,英特尔 7 系列主板确实支持 RAID 0 TRIM。现在可能会有更多供应商在 2015 年支持此功能
我对基于 PCIe 的存储的最新发展感到有些困惑,特别是因为它与 NVMe 规范及其硬件兼容性有关。
虽然我在磁盘外形尺寸的SSD和一些更高端的 PCIe 设备(如Fusion-io )方面进行了广泛的工作,但我处于不了解 NVMe 基础知识的位置,并且正在寻求有关服务器类型的说明支持硬件。
...高性能 CPU PCI-E Gen3 直接连接到 NVMe 设备。
我正在处理基于 Linux 的软件定义存储解决方案,并希望使用备用 Fusion-io 设备,该设备使用专有驱动程序(向操作系统显示/dev/fioX设备名称)。
当我向供应商寻求帮助时,得到的答复是:
“fioX”设备命名已被新的 NVMe 设备接口淘汰。这意味着我们购买过时的适配器来增加其他人没有要求的支持。
这似乎有点苛刻。我不认为 Fusion-io 适配器已经过时。
我在网上找到的稀缺信息似乎暗示 NVMe 仅支持绝对最新一代的服务器硬件(英特尔 E5-2600v3 CPU 和 PCI 3.0 芯片组?)。但我无法验证这一点。
这是真的?
采用率是多少?这是工程师在他们的设计决策中考虑的事情,还是我们在谈论尚未完全形成的“标准”?
如果 NVMe仅适用于市场上的最新系统,那么(向供应商)建议我的旧系统的安装基础不能与 NVMe 兼容是否合理,因此值得添加我请求的支持?
我们有一组安装了 Linux、本地 Web 服务器和 PostgreSQL 的消费者终端。我们正在收到有关机器出现问题的现场报告,经过调查,似乎停电了,现在磁盘有问题。
我原以为问题只是数据库损坏,或者最近更改的文件被打乱了,但还有其他奇怪的报告。
index.php现在是目录)数据库损坏存在问题,但这是我可以预料的。我更惊讶的是更基本的文件系统问题——例如,权限或将文件更改为目录。这些问题也发生在最近没有更改的文件中(例如,软件代码和配置)。
这是 SSD 损坏的“正常”吗?最初我们认为它发生在一些便宜的 SSD 上,但我们在名牌(消费级)上发生了这种情况。
FWIW,我们不会在不干净的启动上执行 autofsck(不知道为什么 - 我是新手)。我们在某些地方安装了 UPS,但有时它没有正确完成等。这应该是固定的,但即便如此,人们仍然可以不干净地关闭终端等 - 所以它不是万无一失的。文件系统是ext4。
问题是:我们可以做些什么来缓解系统级别的问题?
我发现一些文章提到关闭硬件缓存或以同步模式安装驱动器,但我不确定这在这种情况下是否有帮助(元数据损坏和非最近更改)。我还阅读了有关以只读模式挂载文件系统的参考资料。我们不能这样做,因为我们需要编写,但如果有帮助,我们可以为代码和配置创建一个只读分区。
这是一个驱动器的例子sudo hdparm -i /dev/sda1:
Model=KINGSTON RBU-SMS151S364GG, FwRev=S9FM02.5, SerialNo=<deleted>
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=125045424
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive …Run Code Online (Sandbox Code Playgroud) 我必须交出一台笔记本电脑,包括它的硬盘。由于它没有加密,我想至少快速擦除它。我知道这在 SSD 上不是最佳选择,但我认为比简单易读更好。
现在我正在擦除实时 USB 记忆棒,而且速度非常慢。我不知道这是为什么。当然,除了擦除该设备之外,计算机上几乎没有发生任何事情,所以我想熵可能很低(entropy_avail 说它是 1220)。只是打电话是否同样好
dd if=/dev/random of=/dev/sda1 bs=1k
Run Code Online (Sandbox Code Playgroud)
四次?或者有什么方法可以调用会增加随机性的东西?还是瓶颈在某个地方完全不同?