23.4. stacking I/O Parameters
Linux I/O 스택의 모든 계층이 스택의 다양한 I/O 매개 변수를 전파하도록 설계되었습니다. 계층에서 속성을 사용하거나 여러 장치를 집계하는 경우 레이어는 적절한 I/O 매개 변수를 노출해야 하므로 상위 계층 장치 또는 툴이 변환된 대로 스토리지를 정확하게 볼 수 있습니다. 몇 가지 실제 예는 다음과 같습니다.
- I/O 스택에서 하나의 레이어만 0이 아닌 alignment_offset 에 맞게 조정되어야 합니다. 레이어가 그에 따라 조정되면 alignment_offset 이 0인 장치를 내보냅니다.
- LVM으로 생성된 스트립 장치 매퍼(DM) 장치는 스트라이프 수(디스크 수) 및 사용자 제공 청크 크기를 기준으로 minimum_io_size 및 optimal_io_size 를 내보내야 합니다.
Red Hat Enterprise Linux 7에서 장치 매퍼 및 소프트웨어 Raid (MDX) 장치 드라이버는 다른 I/O 매개 변수와 장치를 임의로 결합하는 데 사용할 수 있습니다. 커널의 블록 계층은 개별 장치의 I/O 매개변수를 합리적으로 결합하려고 시도합니다. 커널은 이기종 장치를 결합하는 것을 방지할 수 없지만 이와 관련된 위험을 인지해야 합니다.
예를 들어, 512바이트 장치 및 4K 장치는 논리 _block_size가 4K인 단일 논리 DM 장치로 결합될 수 있습니다. 이러한 하이브리드 장치에 계층화된 파일 시스템은 4K가 원자적으로 작성된다고 가정하지만 실제로는 512바이트 장치에 발행되는 경우 8개의 논리 블록 주소를 확장합니다. 높은 수준의 DM 장치에 4K logical_block_size 를 사용하면 시스템 충돌이 발생하는 경우 512바이트 장치에 부분 쓰기가 발생할 가능성이 높아집니다.
여러 장치의 I/O 매개 변수를 결합하면 충돌로 인해 장치가 부분적인 쓰기 및/또는 잘못 정렬에 취약하다는 경고가 표시될 수 있습니다.