Project

General

Profile

Bug #5220

L2ARC does not support devices that do not provide 512B access

Added by Andriy Gapon about 5 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
zfs - Zettabyte File System
Start date:
2014-10-08
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:

Description

There are disk devices that have logical sector size larger than 512B, for example 4KB. That is, their physical sector size is larger than 512B and they do not provide emulation for 512B sector sizes. For such devices both a data offset and a data size must be properly aligned. L2ARC should arrange that because it uses physical I/O.
zio_vdev_io_start() performs a necessary transformation if io_size is not aligned to vdev_ashift, but that is done only for logical I/O. Something similar should be done in L2ARC code.

  • a temporary write buffer should be allocated if the original buffer is not going to be compressed and its size is not aligned
  • size of a temporary compression buffer should be ashift aligned
  • for the reads, if a size of a target buffer is not sufficiently large and it is not aligned then a temporary read buffer should be allocated

History

#1

Updated by Bayard Bell over 4 years ago

  • Tags deleted (needs-triage)
#2

Updated by Electric Monk over 2 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 403a8da73c64ff9dfb6230ba045c765a242213fb

commit  403a8da73c64ff9dfb6230ba045c765a242213fb
Author: Andriy Gapon <avg@FreeBSD.org>
Date:   2017-06-13T20:06:13.000Z

    5220 L2ARC does not support devices that do not provide 512B access
    Reviewed by: George Wilson <george.wilson@delphix.com>
    Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
    Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Also available in: Atom PDF