RAID, LVM 및 LUKS의 최고 순서


13

데비안 GNU / 리눅스 8과 함께 파일 서버를 설치하려고합니다.

LUKS를 사용하여 암호화 된 디스크뿐만 아니라 mdadm을 사용하는 소프트웨어 RAID-1을 갖고 싶습니다. 또한 LVM의 유연성을 좋아합니다.

이를 수행하는 방법에는 여러 가지가 있습니다. 한 가지 방법은 다음과 같습니다. 먼저 mdadm을 사용하여 RAID-1을 설정하십시오. 그런 다음 생성 된 / dev / mdX를 포함하도록 LVM PV를 설정하십시오. 그런 다음 LV를 설정하고 LUKS를 사용하여 LV를 암호화하십시오. 그런 다음 파일 시스템으로 ext4를 포맷하십시오. 결과적으로 다음과 같은 레이아웃이됩니다.

RAID --> LVM --> LUKS --> ext4

또는 다른 순서로 할 수 있습니다.

RAID --> LUKS --> LVM --> ext4

아니면 어쩌면 :

LVM --> RAID --> LUKS --> ext4

그리고 아마도 다른 순서 일 수도 있습니다.

다른 접근 방식의 장점과 단점은 무엇입니까? 최고의 성능, 보안, 유지 관리 성 등을 제공하는 것은 무엇입니까?

이것을하는 "최상의 방법"이 있습니까?

답변:


18

먼저 LUKS 및 LVM의 순서는 다른 LUKS 암호 또는 다른 LV에 대한 다른 설정을 원하는지 여부에 따라 다릅니다. LV마다 다른 비밀번호를 설정해야한다면 LVM 위에 LUKS를 설치해야합니다. 반면, 모든 LV가 keylen과 같은 동일한 암호와 설정을 공유하는 경우 LVM 아래에 LUKS를 설정하면 둘 이상의 LUKS 파티션을 갖는 오버 헤드를 처리 할 필요가 없습니다. 비밀번호를 변경해야 할 때 수행해야합니다).

둘째, 거의 항상 RAID가 가장 낮은 수준이되기를 원하므로 하나의 디스크가 죽으면 쉽고 투명하게 교체 할 수 있습니다. LVM 위에 RAID를 설정하려면 디스크 하나가 죽을 때 PV를 교체해야합니다. 이는 목에 큰 고통이 될 것입니다. 또한 LVM 위에있는 RAID는 LVM의 유연성을 완전히 떨어 뜨립니다. 그런 다음 RAID 위에 LVM의 두 번째 계층을 다시 설정해야합니다.

따라서 대부분의 경우 사람들은 단일 암호 만 사용하면되므로 충분합니다.

RAID-> LUKS-> LVM-> ext4

경우에 따라 여러 RAID 장치를 큰 볼륨으로 결합하기 위해 LVM을 사용해야 할 수도 있습니다.

RAID-> LVM-> LUKS (-> LVM)-> ext4

이론적으로 모든 레이어가 올바르게 설정되어 있으면 순서가 성능에 큰 영향을 미치지 않아야하며 실제로이 설정이 특히 나쁜 성능을 보지 못했습니다. 가장 중요한 것은 아마도 정렬입니다.

  1. 파티션이 1MB로 정렬되어 있는지 확인하십시오 (SSD에 매우 중요).
  2. RAID 계층의 경우 청크 크기를 현명하게 선택하십시오 .
  3. LVM의 --dataalignment경우 RAID 청크 크기와 일치하도록 설정하십시오 ( 이것이 도움 될 수 있습니다).

또한 SSD에 있는지 확인 당신은 LUKS TRIM / DISCARD 통과 추가하여 사용하도록 설정하는 경우 rd.luks.options=discard/etc/default/grubdiscard/etc/crypttab(이가. 내가 레드햇 / 페도라 리눅스에 무엇을 데비안에 약간 다를 수 있습니다.) LVM 및 RAID해야 자동으로 지원 폐기를 새로운 커널을 사용한다면

물론 이것은 일반적인 지침 일뿐입니다. 특별한 도움이 필요한 경우 언제든지 질문이나 의견을 업데이트하십시오.


빠른 답변 감사합니다. 좋은 포인트! 사소하지 않은 성능 차이에 대해 언급 할 수 있습니까?
Thomas

일부 성능 메모로 업데이트되었습니다.
Yan Li

1
또한 항상 MDADM을 사용할 필요는 없습니다 (이것이 가장 일반적인 해결책이라고 생각하지만). -LVM은 RAID (일명 미러링)를 제공합니다
davidgo

@davidgo 예. 나는 그것을 언급하는 것에 대해 생각했지만 그것을하지 않았다. 왜 그것이 올바른 길인지 확실하지 않기 때문이다. 개인적으로 시도하지 않았으며 (주로 5 또는 6과 같은 높은 수준의 RAID를 사용함) 이 질문에 대한 답변에서 언급 한 것처럼 LVM 미러링에 대한 혼합 피드백을 읽었습니다 .
Yan Li

@Yan, 동의합니다. 나도 항상 mdadm RAid를 사용합니다 (1)
davidgo

4

모든 RAID, LUKS 및 LVM을 원한다면 권장 RAID -> LUKS -> LVM -> FS합니다. RAID --> LVM --> LUKS --> LVM --> FS보다 더 낫다 RAID -> LUKS -> LVM볼륨이 단지 더 추가 연장 - RAID -> LUKS볼륨 그룹에 장치를.

RAID --> LVM --> LUKS --> FS -특정 논리 볼륨 만 암호화하면 기본적으로 모든 것을 암호화하지 않는 기능이 있지만 (장점 또는 단점으로 보일 수 있음) 루트 FS를보다 쉽게 ​​확장 할 수 있습니다.

논리 볼륨 위에 LUKS를 확장하는 것은 사용자가 잘못된 순서로 확장 / 크기를 조정할 때 발생하는 일반적인 문제의 원인입니다. 전체 md RAID 장치에 LUKS를 사용하면 크기 조정이 간단 해집니다. 새 md 장치를 추가하고 그 위에 LUKS를 생성하고 / etc / crypttab에 장치를 추가 하고 (적어도 Fedora 및 RHEL 클론에서) 볼륨 그룹을 확장하십시오. 루트 FS가 볼륨 그룹에있는 경우 rd.luks.uuid커널 cmdline에 다른 항목을 추가해야합니다 ( / etc / default / grub을 편집 하고 grub.cfg를 다시 생성하십시오).

LUKS -> RAID일반적으로 잘못되었습니다. 데이터가 여러 번 암호화되어 이득없이 더 많은 CPU주기를 소비합니다. 또한 디스크 고장시 LUKS를 설정하지 않고 고장난 디스크를 새 것으로 교체 할 수도 있습니다.

확장 및 축소 :

연장 할 때 항상 위에서 아래로 go을 때 스택의 맨 아래에서 go니다.

예:

확장 RAID -> LVM -> LUKS -> FS (볼륨 그룹에 충분한 여유 공간이있는 경우 처음 두 단계는 선택 사항 임) :

  1. 새 디스크를 추가하고 md RAID를 작성하십시오.
  2. mdX 장치를 볼륨 그룹에 추가하십시오.
  3. 논리 볼륨을 확장하십시오.
  4. LUKS 장치를 확장하십시오.
  5. FS를 확장하십시오.

수축 RAID -> LVM -> LUKS -> FS :

  1. FS 축소.
  2. LUKS 장치를 줄입니다.
  3. 논리 볼륨을 줄입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.