디스크의 마지막 실린더에 lvm 볼륨 생성

디스크의 마지막 실린더에 lvm 볼륨 생성

모든 자기 디스크에서 첫 번째 섹터와 마지막 섹터 사이의 속도 차이는 최대 2~3배까지 눈에 띕니다. 이는 새로운 멀티테라바이트 디스크에서도 마찬가지입니다. 따라서 자주 사용되지 않는 파일, 특히 백업용으로 디스크의 마지막 실린더를 예약하는 것이 여전히 합리적입니다.

파티션된 디스크를 사용하면 이를 수행하는 것이 쉽지 않으며 향후 크기 변경을 허용한다는 유일한 주의 사항이 있습니다.

하지만 내 구성은분할되지 않은 LVM. 따라서 두 개의 볼륨 그룹을 동일한 물리적 하드웨어에 배치하거나(하나는 디스크 세트의 시작을 사용하고 다른 하나는 끝을 사용) 논리 볼륨이 하드웨어의 마지막 실린더에 있는 확장을 사용하도록 해야 합니다. . 가능합니까? LV가 어디에 위치할지 통제할 수 있나요?

답변1

캐싱, 미리 읽기 정책 및 사용할 수 있는 디스크 엘리베이터로 인해 이것이 대부분의 작업 부하에서 큰 문제라는 점에 동의하지 않지만 주의 사항이 있으면 가능합니다.

이 문제를 해결하는 가장 좋은 방법은 할당하려는 미디어를 분리하려는 디스크의 각 끝으로 간주하는 '청크'로 물리적으로 분할하는 것입니다.

이 같은

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  ext4         boot
 2      1075MB  4TB     4TB     primary               lvm # My fast partition
 3      4TB     8TB     4TB     primary               lvm # My slow partition

그런 다음 볼륨 그룹을 생성합니다. 이 예에서는 하나의 볼륨 그룹을 사용하지만 대신 '느린' VG와 '빠른' VG를 사용하는 것이 더 쉬울 수 있습니다.

# pvcreate /dev/sda2 
# pvcreate /dev/sda3
# vgcreate vg /dev/sda2 /dev/sda3

그런 다음 해당 물리적 ​​볼륨에서 LV를 할당하십시오.

# lvcreate -n myFastLV -L1TB vg /dev/sda2
# lvcreate -n mySlowLV -L1TB vg /dev/sda3

여기서 주의할 점은 불량 섹터가 종종 다른 곳에 위치한 '예비'를 사용하여 디스크 컨트롤러에 의해 자동으로 교체될 수 있다는 것입니다(완전히 제조업체와 무관함). 또한 일부 고급 디스크는 제공된 주장과 논리적으로 일치하지만 물리적으로 예상한 위치에 있지 않은 섹터를 내부적으로 다시 매핑할 수 있습니다.

마지막으로, 귀하가 제안한 문제 워크로드(대형 파일 파이프라인)는 실제로 작성된 파일에 사전 할당 기술을 사용하여(조각화되지 않고 연속적으로 유지하기 위해) 더 큰 이득을 얻을 수 있는 매우 순차적인 워크로드 문제입니다.

그런 다음 읽고 있는 파일에 연속될 가능성이 가장 높은 인접/향후 섹터 전체를 읽도록 공격적인 미리 읽기 정책을 설정합니다.

물리적 섹터를 원하는 순서와 방식으로 매핑하는 것을 사용하면 보다 세분화된 접근 방식을 얻을 수도 있지만 dmsetup이는 이식성이 너무 높지 않으며 장기적으로 볼 때 그 가치보다 더 많은 노력이 필요할 수 있습니다(재구축하려면 스크립트가 필요함) 예를 들어 부팅 시 매핑).

관련 정보