我希望开始磁带备份方案,并希望以一种足够的方式(120+MBs目标可持续)保持数据流向磁带驱动器,但如果没有专用的源驱动器/数组(当不写入磁带时会闲置),则无法解决如何做到这一点。我们的特定驱动器的文档提到不需要最低吞吐量。
环境
如果源数组在磁带写入过程中具有显着的读写(来自计划的备份),那么即使是暂时的,对磁带的吞吐量也会急剧下降。因此,一些围绕源数组/磁带写入吞吐量的问题:
我决定使用一个单一I/O流来对事情进行最低限度的征税,通过一个600 at的存档作业从数组读取大约30 at/S的数据,同时使用SATA从4驱动器RAID 6中写入一个tar到磁带。通过听驱动器,磁带明显地减速到爬行,但似乎没有用完数据或擦鞋。这告诉我,在对硬件配置进行完全计划的备份过程中,不要指望事情能够跟上,但它可以处理一个不那么繁重的I/O作业,编写到磁带中。
注意到,LOT4磁带必须进行56个端到端的传递,这样才能有效地写入~14 go的块,然后停下来减速,然后“转”到另一个方向。我认为这有助于保持驱动器在较低的吞吐量下与数据“喂养”,因为我已经在前面阅读了stinit.def中的异步写入集。
另一个注意事项是读到"dd if=/dev/st0 of=/dev/null“只产生了107 MB/s的结果。我假设这是驱动器的实际最大有效吞吐量,而不是120 MB/S。驱动器目前在一个专用的SAS PCIe HBA上,没有安装其他PCIe卡。
同时,我设置了一个1TB RAID0作为Disk2Tape缓冲区,并必须向服务器添加另一个磁盘才能实现这一点。
我仍然希望找到其他方法,为磁带驱动器执行某种QOS,并设置写入磁带的最高优先级,这样我们就可以简化阵列并降低寄生硬感知成本,但与此同时,如果我想确保无论排在数组上的是什么计划的作业,都要确保连续写入,那么我也找不到一种方法来避免使用专用的disk2tape缓冲区。
发布于 2018-05-21 03:20:21
mbuffer是一个小而方便的工具,它可以帮助您实现maintain sustained data flow to the tape drive。它可以在大多数linux发行版上使用。
mbuffer -缓冲I/O操作并显示吞吐量。它是多线程的,支持网络连接,并提供比标准缓冲区更多的选项.
多线程动态压缩的示例用法:
tar /backupdir \ cvf - lbzip2 \ mbuffer -m 4G -L -P 80 > /dev/st0
mbuffer参数解释如下:
-m 4 4GB内存缓冲区大小。如果有必要或可用,请使用更大的缓冲区。-L (可选)-P 80开始写入磁带后,80%的缓冲区已填充。没有必要投入100,因为它将需要一段时间,一个磁带驱动器开始写作,它可能会填补100%到那时。在本例中,一旦缓冲区填满了80%的容量,它将开始向磁带发送数据,mbuffer将继续接收归档流。
如果归档过程很慢,并且mbuffer还没有收到足够快的数据以跟上磁带驱动器,那么当数据达到0%时,它将停止向磁带驱动器发送数据。一旦内存缓冲区被填满高达80%,它将开始发送数据到磁带驱动器,记录将继续全速。
这样,磁带的“擦鞋”就会减少到最小,磁带驱动器总是以维持流所需的最大速度获得数据。
您还可以使用反向mbuffer从磁带驱动器读取备份数据,并将流存储到一些较慢的介质中,或通过网络发送。
发布于 2018-02-16 20:44:07
手册我找到了列出了从30.5到120 MB/s的可变速度,以7 MB/s的速度递增。
此外,LTO驱动器使用合理大小的缓冲区来均衡数据流,并为速度调整提供一个指示器,因此除非读取速度变化很大或非常低,否则回溯应该是最小的。
有了一些不错的数组和大文件上的数据,120 MB/s甚至不会成为一个大问题(除非文件系统是高度分散的)。我们的磁带缓冲区在RAID 0中使用两个(慢)4TB驱动器,可以支持appr。270 MB/s,但我们不写缓冲区,而磁带是写的。
https://serverfault.com/questions/897489
复制相似问题