제목 없음
2장: 가상 장치 이 장에서는 소시지가 어떻게 만들어지는지 살펴보겠습니다. 이것은... 돼지, 즉 디스크입니다. 디스크는 스토리지의 물리적 표현입니다. 디스크는 사악합니다. 디스크는 그 특성과 레이아웃에 대해 거짓말을 하고, 오류를 숨기며, 예상치 못한 방식으로 실패합니다. ZFS를 사용하면 더 이상 디스크가 몰래 음모를 꾸미는 것은 아닌지 걱정할 필요가 없습니다. 예, 디스크가 음모를 꾸미고 있기는 하지만, ZFS는 디스크의 배신을 폭로하고 이를 중단시킵니다. ZFS에서 사용 가능한 디스크를 가장 효과적으로 사용하려면 운영 체제가 ZFS에 디스크를 제공하는 방식과 ZFS가 해당 디스크의 데이터를 정렬하는 방식에 대한 기본적인 이해가 필요합니다. 디스크 및 기타 저장 매체 ZFS는 디스크가 아닌 다른 저장 매체에서도 실행할 수 있습니다. FreeBSD GEOM 저장소 제공자라면 무엇이든 ZFS 저장 매체가 될 수 있습니다. ZFS는 파일을 백업 스토리지로 사용하는 기능도 지원하는데, 이는 테스트용으로는 정말 좋지만 프로덕션용으로는 적합하지 않습니다. ZFS는 모든 블록 장치를 물리적 저장소로 사용할 수 있지만 각 유형마다 장단점이 있습니다. 원시 디스크 스토리지 전체 물리적 디스크를 사용하면 복잡성이 줄어듭니다. 또한, 파티셔닝에 대해 걱정할 필요가 없으며, ZFS와 물리적 디스크 사이에 소프트웨어나 구성이 필요하지 않습니다. 그러나 일반적으로 이러한 장점보다 단점이 더 큽니다. 디스크에서 부팅하려면 디스크에 부트 로더가 있어야 합니다. 부트 로더는 파티션된 디스크에서만 사용할 수 있습니다. 원시 디스크는 부팅할 수 없습니다. FreeBSD는 디스크에 유용한 레이블을 지정할 수 있도록 지원하지만, 이러한 레이블은 파티션 정보 안에 있습니다. 더 나쁜 점은, 대체 디스크는 원본 디스크와 정확히 같은 크기이거나 더 커야 한다는 것입니다. 6TB 디스크의 크기가 모두 같은 것은 아니며, 공급업체마다 디스크 크기가 몇 메가바이트씩 다릅니다. 시스템을 설정할 때는 이러한 차이가 중요하지 않지만 디스크를 교체할 때는 매우 중요합니다. 대부분의 카탈로그에는 각 디스크의 섹터 수가 나열되어 있지 않고 크기만 나와 있기 때문에 사용 가능한 대체품을 찾으려면 여러 번 시도해야 할 수 있습니다. 기존 512바이트 섹터를 사용하는 드라이브를 4096바이트(4K, 고급 포맷이라고도 함) 섹터를 사용하는 드라이브로 교체하면 상황이 더욱 복잡해집니다. 원래 드라이브에는 8로 균등하게 나눌 수 없는 수의 섹터가 있었을 가능성이 높습니다. 디스크 드라이브에서 사용하는 특수 수학 덕분에 새 드라이브는 이전 드라이브보다 몇 바이트 더 크더라도 몇 바이트 더 작아 보일 수 있습니다. 파티션 스토리지 전체 원시 디스크를 사용하는 대신 디스크를 파티션한 다음 그 파티션 중 하나를 ZFS용으로 사용할 수 있습니다. 이 방법의 가장 큰 장점은 별도의 부팅 장치가 필요 없이 작은 부팅 파티션을 만들어 ZFS 파티션이 포함된 디스크에서 부팅할 수 있다는 것입니다. 또한 파티션을 사용하면 원시 스왑 파티션이나 다른 파일 시스템과 같은 다른 용도로 디스크 공간의 일부를 사용할 수 있으며, 교체 디스크의 섹터 수가 일치하지 않아도 되도록 디스크 끝에 약간의 여유 공간을 남겨둘 수 있습니다. 또한 파티셔닝을 통해 드라이브를 '짧게' 만들어 성능을 향상시킬 수도 있습니다. 많은 원본 Solaris ZFS 관리 가이드에서는 성능상의 이유로 파티션(또는 Solaris 용어로는 슬라이스)을 사용하지 말 것을 권장합니다. Solaris에서 파일 시스템에 파티션을 사용하면 쓰기 캐시가 비활성화됩니다. FreeBSD에서 쓰기 캐시를 비활성화하는 것은 디스크 파티셔닝이나 파일 시스템과는 완전히 별개입니다. FreeBSD는 파티션에서 ZFS를 사용할 때 완전한 성능을 제공합니다. FreeBSD는 여러 가지 파티셔닝 체계를 지원하지만, GPT를 강력히 권장합니다. 이전 파티셔닝 시스템인 MBR은 기본 파티션의 수를 4개로 제한한 반면, GPT는 최대 128개의 파티션을 지원합니다. MBR은 최대 2TB까지만 디스크를 관리할 수 있는 반면, GPT는 512바이트 섹터 디스크로 최대 8ZB, 4개의 K-섹터 디스크로 최대 64ZB까지 관리할 수 있습니다. FreeBSD 마스터: 스토리지 필수사항에서는 두 가지 파티셔닝 방법에 대한 FreeBSD의 지원을 다룹니다.1 파티션 사용의 단점은 ZFS가 제공하는 일부 이식성을 잃을 수 있다는 것입니다. 한 시스템에서 다른 시스템으로 디스크를 이동하는 경우, 대상 시스템이 디스크 파티션을 인식할 수 있어야 합니다. GEOM 장치 스토리지 ZFS는 다양한 FreeBSD GEOM 클래스를 백업 스토리지로 사용할 수도 있습니다. 이러한 클래스는 파일 시스템과 물리적 장치 사이에 위치하며 다양한 기능을 수행합니다. GEOM 클래스는 전체 디스크 암호화(GELI, GBDE), 고가용성, 레이블, 다중 경로 및 플러그형 스케줄러와 같은 기능을 제공합니다. GEOM 클래스는 전체 장치를 기반으로 만들거나 파티션, 다중 경로 장치 또는 암호화된 디스크와 같은 다른 GEOM 클래스 위에 만들 수 있습니다. 암호화된 ZFS 풀을 생성하는 가장 좋은 방법은 GELI(FreeBSD 디스크 암호화 서브시스템)입니다. GELI는 ZFS와 물리적 디스크 사이를 오갈 때 블록을 암호화하고 해독하므로 ZFS에서 다른 작업을 할 필요가 없습니다. GELI는 다양한 암호화 알고리즘을 지원하지만, 기본값인 AES-XTS는 특히 AES-NI(AES New Instructions)를 지원하는 최신 CPU에서 최상의 성능을 제공합니다. 이 하드웨어 오프로드 기능의 도움으로 GELI는 초당 1GB 이상의 속도로 데이터를 암호화하고 더 빠르게 해독할 수 있으므로, SSD에서도 암호화를 추가해도 성능이 저하되지 않습니다. 또한 GELI는 각 섹터에 해시 메시지 인증 코드(HMAC)를 저장하는 데이터 인증(무결성 검증) 기능을 선택적으로 제공할 수 있습니다. 이 HMAC를 사용하여 데이터의 무결성(데이터가 변조되지 않았는지)과 진위성(이 데이터가 사용자가 작성한 것인지)을 확인합니다. 섹터를 다시 읽을 때 HMAC가 데이터를 확인하지 못하면 오류가 반환됩니다. HMAC 기능은 기본적으로 활성화되어 있지 않으며, ZFS는 각 데이터 블록에 대해 자체 체크섬을 제공하기 때문에 ZFS에 비해 과한 기능일 수 있습니다. 고가용성 스토리지 기술(HAST)은 FreeBSD의 분산 스토리지 솔루션입니다. 네트워크를 통해 컴퓨터 간에 블록 장치를 미러링할 수 있습니다. HAST를 ZFS 풀의 백업 스토리지로 사용하면 각 백업 디스크를 두 번째 머신에 미러링할 수 있습니다. HAST의 장점은 실시간이라는 점입니다. 블록은 HAST 클러스터의 모든 호스트에 쓰여질 때까지 쓰여진 것으로 간주되지 않습니다. 반면에 ZFS 복제는 주기적인 스냅샷 동기화를 기반으로 합니다. 그러나 HAST를 사용하면 두 번째 머신은 첫 번째 머신과 동시에 풀을 가져오거나 마운트할 수 없습니다. 복제된 풀을 동시에 활성화(읽기 전용)할 수 있는 ZFS 복제와 비교했을 때, HAST는 몇 가지 경우에만 의미가 있습니다. GEOM 레이블은 각 디스크나 파티션에 의미 있는 메모를 첨부할 수 있는 편리한 방법을 제공합니다. 디스크 식별, gptid, GPT 레이블과 같은 표준과 GEOM 전용 글레이블을 포함한 다양한 레이블 유형이 있습니다. 드라이브 라벨링 모범 사례는 0장에 나와 있습니다. GEOM은 고가용성을 위한 다중 경로도 지원합니다. 디스크뿐만 아니라 컨트롤러 카드, 백플레인 또는 케이블도 고장이 나는 경우가 있습니다. 다중 경로를 사용하면 다음과 같은 엔터프라이즈 드라이브가 가능합니다.