Shingled magnetic recording (SMR) increases the capacity of magnetic hard drives, but it requires that each zone of a disk be written sequentially and erased in bulk. This makes SMR a good fit for workloads dominated by large data objects with limited churn. To explore this possibility, we have developed SMORE, an object storage system designed to reliably and efficiently store large, seldom-changing data objects on an array of host-managed or host-aware SMR disks. SMORE uses a log-structured approach to accommodate the constraint that all writes to an SMR drive must be sequential within large shingled zones. It stripes data across zones on separate disks, using erasure coding to protect against drive failure. A separate garbage collection thread reclaims space by migrating live data out of the emptiest zones so that they can be trimmed and reused. An index stored on flash and backed up to the SMR drives maps object identifiers to on-disk locations. SMORE interleaves log records with object data within SMR zones to enable index recovery after a system crash (or failure of the flash device) without any additional logging mechanism. SMORE achieves full disk bandwidth when ingesting data---with a variety of object sizes---and when reading large objects. Read performance declines for smaller object sizes where inter- object seek time dominates. With a worst-case pattern of random deletions, SMORE has a write amplification (not counting RAID parity) of less than 2.0 at 80% occupancy. By taking an index snapshot every two hours, SMORE recovers from crashes in less than a minute. More frequent snapshots allow faster recovery.
翻译:磁磁记录(SMR)提高了磁硬盘驱动器的容量,但它要求磁盘的每个区必须按顺序写成,并大量清除。这使得磁盘磁盘的每个区能够很好地适应由大数据对象和数量有限热点控制的工作量。为了探索这一可能性,我们开发了SMORE,这是一个物体存储系统,目的是可靠和高效地存储在一系列主机管理或主机能磁盘上的大型、很少变化的数据对象。SMORE使用日志结构化方法,以适应所有写给磁盘驱动的每个区都必须在大闪烁区连续排列的制约。它将各区的数据在不同的磁盘上剥去,使用刻式编码来保护驱动失败。一个单独的垃圾收集线通过将现场数据移出最空格区域,以便进行剪接和再利用。一个在闪光线和主机驱动器驱动器驱动器驱动器定位到上的位置的索引。SMRMRER系统运行记录在系统崩溃后的指数恢复速度比最短的轨道速度记录(或最短的轨道)在两个目标对象的轨道上进行最短的轨道上,在最短的SMLOLO值内进行最短的回收。SMLLLA,在不进行最短的运行时,在任何磁段内进行最短的磁段内进行最短的回收。