![LVM과 RAID에 클러스터 파일 시스템이 필요하지 않은 이유](https://linux55.com/image/111537/LVM%EA%B3%BC%20RAID%EC%97%90%20%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%B4%20%ED%95%84%EC%9A%94%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EC%9D%B4%EC%9C%A0.png)
따라서 LVM 및 RAID는 여러 물리적 HDD에 걸쳐 있을 수 있는 가상 저장 장치를 생성할 수 있습니다. 논리 볼륨이나 RAID 장치를 생성한 후 일반적으로 수행하는 작업은 파일 시스템을 사용하여 장치를 포맷하는 것입니다.
ext4가 클러스터 파일 시스템이 아닌 경우 mkfs.ext4가 작동하는 이유는 무엇입니까?
내가 아는 한, 각 HDD의 각 파티션에는 특정 유형의 로컬 파일 시스템(ext2, ext3, ext4, ntfs, fat32...)이 있습니다. 여러 HDD의 파티션을 결합하는 경우 클러스터 파일 시스템이 필요하지 않습니까?
클러스터 파일 시스템을 사용하지 않고 여러 프로세스가 동일한 파일을 수정하려고 하면 어떻게 됩니까?
답변1
클러스터 파일 시스템은 기본적으로 독립적으로 동일한 저장소에 액세스하는 여러 컴퓨터를 처리할 수 있는 시스템입니다. 따라서 예를 들어 기본 저장소가 예기치 않게 변경될 수 있는 경우(컴퓨터 중 하나가 여기에 데이터를 쓰기 때문에)를 처리해야 합니다.
이를 RAID1과 비교해 보세요(예를 들어 이해하기 쉽기 때문에). 파일 시스템에서 "장치 A의 섹터 Y에 데이터 X 쓰기" 요청을 수락한 다음 구역 Y에 쓰는 것이 전부입니다. 또는 파일 시스템 요청 "장치 A에서 섹터 Y 읽기"는 B 또는 C(정확히 동일한 데이터 포함)에서 섹터 Y를 읽습니다. 이는 파일 시스템에 완전히 투명합니다. RAID는 블록 장치가 작동할 것으로 예상되는 것과 정확히 동일하게 작동하는 블록 장치를 제공합니다.
기본적으로 블록 장치에는 다음과 같은 기능이 있어야 합니다(공식적인 정의는 아닙니다).
- 섹터를 어떤 순서로든 읽고 쓸 수 있습니다.
- 데이터 D를 섹터 X에 쓴 경우 나중에 섹터 X를 읽을 때마다 D를 반환해야 합니다.
이것이 바로 RAID 장치가 하는 일입니다(실제로는 그것이 바로 RAID 장치가 하는 일입니다).더 나은 것실제 디스크보다). 이는 클러스터 파일 시스템에 사용되는 공유 디스크의 경우에는 해당되지 않습니다. 특히 다른 시스템이 동시에 해당 섹터에 데이터 D2를 기록했을 수 있으므로 두 번째 요점을 위반합니다.
이런 점에서 LVM은 단순히 섹터 번호를 다시 매핑하지만 블록 장치 동작을 어느 정도 유지한다는 점에서 RAID와 유사하게 작동합니다. 예를 들어 섹터 1-100을 장치 A로 보내고 섹터 101-200을 장치 B로 보낼 수 있지만 이는 여전히 해당 동작을 유지합니다(물론 A와 B가 동작하는 경우).
답변2
내가 아는 한, 각 HDD의 각 파티션에는 특정 유형의 로컬 파일 시스템(ext2, ext3, ext4, ntfs, fat32...)이 있습니다. 여러 HDD의 파티션을 병합하는 경우
ext2, ext3, ext4, ntfs, fat32 유형 파티션을 결합할 수 없습니다...
LVM PV, RAID 유형을 사용하여 포맷된 파티션만 결합할 수 있습니다.
그 결과는 분할된 블록 장치와 마찬가지로 가상 블록 장치입니다. 블록 파일 시스템을 사용하거나 블록 파일 시스템 없이 포맷할 수 있습니다. (LVM을 사용하면 PV가 볼륨 그룹으로 그룹화되어 여러 논리 볼륨을 생성할 수 있습니다. LV는 가상 블록 장치입니다.)
클러스터 파일 시스템전혀 다른 서비스를 제공합니다. 그들은 허용할 수 있다하나의여러 대의 컴퓨터에 동시에 파일 시스템으로 마운트되는 저장 장치입니다. 이는 일반적인 적용 가능성이 낮습니다. 예를 들어 여러 대의 컴퓨터를 보유하려는 경우 처음에는 의미가 있습니다.