파티션은 예를 들어 더 큰 하드 드라이브로 업그레이드 할 때 많은 유연성을 제공하기 때문에 Linux 서버에서 매우 중요합니다.
그러나 리눅스 박스를 만들 때 몇 개의 파티션을 만들어야합니까? 각 파티션에 어떤 크기를 설정해야합니까?
마지막으로 적어도 별도의 디스크에 어떤 파티션이 있어야합니까 (/ home, / var에 대해 더 빠른 드라이브 등을 생각하고 있습니다) 어떤 드라이브를 같은 드라이브에서 공유 할 수 있습니까?
파티션은 예를 들어 더 큰 하드 드라이브로 업그레이드 할 때 많은 유연성을 제공하기 때문에 Linux 서버에서 매우 중요합니다.
그러나 리눅스 박스를 만들 때 몇 개의 파티션을 만들어야합니까? 각 파티션에 어떤 크기를 설정해야합니까?
마지막으로 적어도 별도의 디스크에 어떤 파티션이 있어야합니까 (/ home, / var에 대해 더 빠른 드라이브 등을 생각하고 있습니다) 어떤 드라이브를 같은 드라이브에서 공유 할 수 있습니까?
답변:
좋은 파티션 구조를 계획하는 것은 실제로 '서버'를 어떻게 사용할지 아는 것에 크게 좌우됩니다. 제공 될 실제 서비스를 취하지 않는 임의의 조언은 특별히 유용하지 않을 것입니다.
예를 들어, mysql에 사용될 데비안 기반 박스라면 /, / var 및 / var / lib / mysql에 대해 별도의 파티션을 원할 수 있습니다.
공유 스토리지가 많은 파일 서버입니까? /, / home 및 / srv 파티션이 필요할 수 있습니다.
오징어 만 실행하는 상자의 경우 /에 대한 파티션과 오징어 스풀에 대한 빠른 디스크에 하나의 파티션이 필요할 수 있습니다.
파티션을 계획 할 때는 파일 시스템 계층 표준을 이해 하고 선택한 배포판이 표준 과 다른지 여부를 이해하는 것이 매우 도움이됩니다 .
LVM 을 사용 하면 나중에 마음을 바꾸고 재부팅하지 않고도 파티션을 조정하기가 훨씬 쉬워 질 수 있으며 스냅 샷을 만드는 기능은 백업을 매우 쉽게 만들 수 있습니다.
나는 항상이 파티션을 만들고 작년부터는 항상 LVM에서 만듭니다.
/ - a few Gig
/usr - 24 Gig and mostly empty
/var - 4 Gig works for me, YMMV
/home - depends on how many users you will have
가장 중요한 것 중 하나는 /var
-이 파티션이 별도의 파티션 인 경우 가득 차면 루트 파티션이 충돌하지 않습니다. 이 작업은 한 번도 수행하지 않았지만 일부는 /usr
읽기 전용으로 마운트 할 수 있도록 별도로 만듭니다 .
때로는 이러한 파티션을 만듭니다.
/boot - even 1 Gig is way more than enough
RAID 또는 LVM 파티션에서 항상 부팅 할 수있는 것은 아닙니다. 따라서 /boot
간단한 ext3 파티션이되어 /
더 발전 할 수 있습니다.
많은 수의 큰 파일을 보유 할 경우, 때때로 이러한 큰 파일에 대한 특정 파티션을 작성하여 파일 시스템을 큰 파일을 효율적으로 저장하도록 조정할 수 있습니다. 어떤 사람들은 서버에서 NFS를 제공 할 경우 NFS 공유를 위해 별도의 파티션을 만들거나 각 NFS 공유를 위해 별도의 파티션을 만들 수도 있습니다. 이것은 당신의 필요에 달려 있습니다.
왜 LVM인가? 다른 곳에서 답변을 언급했지만 여기에서 언급하는 것을 잊었으므로 나중에 마음을 바꾸고 파티션을 확장하는 것이 훨씬 쉽습니다. 이것은 내 엉덩이를 이미 저장했습니다.
이것들은 일반적인 지침입니다. 물론 서버에 특별한 요구 사항이있는 경우이를 고려하여 이러한 요구 사항을 반영하는 파티션을 만들 것으로 기대합니다.
오래 지속될 컴퓨터를 만들고 있고 재구성하기에 불편하고 꽤 유연해야한다고 가정하면 다음과 유사한 구성표가 필요할 수 있습니다.
동일한 크기의 물리적 드라이브를 최소 2 개 이상 설치하십시오. 이 예제에서는 500GB SATA 드라이브를 가정하지만 다른 크기의 드라이브에서도 원리가 잘 작동합니다.
다음과 같이 각 드라이브를 분할하십시오.
/dev/sda1 500MB
/dev/sda2 100GB
/dev/sda3 the rest
목표는 앞에 500MB 파티션, OS 및 응용 프로그램을위한 중간 크기의 파티션, 추가 데이터를위한 드라이브의 대량을 확보하는 것입니다.
및 /dev/md0
에서 SW RAID 1 세트를 빌드하십시오 . 추가 SW RAID 1 세트 와 해당 파티션에서 빌드 하십시오./dev/sda1
/dev/sdb1
/dev/md1
/dev/md2
/dev/md0
ext3으로 형식화하십시오 . 이 될 것 /boot
입니다.
포맷 /dev/md1
및 /dev/md2
LVM 물리 볼륨.
vg_system
을 포함 하는 LVM 볼륨 그룹을 만듭니다 /dev/md1
.
vg_system
다양한 OS 파티션에 적합한 LVM 볼륨을 생성하십시오 . 최소한, 당신이 원하는 것 swap
, /var
몇 GB의, 그리고 /
10기가바이트의 정도.
참고 : 모두 할당하지 마십시오 vg_system
! 나중에의 크기를 늘리 거나을 \var
추가
/opt
하려는 경우 추가 공간을 원할 것입니다.
vg_data
을 포함 하는 LVM 볼륨 그룹을 만듭니다 /dev/md2
.
vg_data
원하는대로 LVM 볼륨을 작성하십시오 . 최소한 크기 조정이 필요하며 /home
메일 스풀, 데이터베이스, 웹 루트 또는 OS에 포함되지 않은 기타 데이터에 대한 추가 볼륨이 필요할 수 있습니다. 다시 말하지만 vg_data
위에 나열된 것과 유사한 이유로 모든을 할당하지 마십시오 .
이 전략의 장점은 다음과 같습니다.
하드웨어 고장에 견딜 수 있습니다. 두 드라이브 중 하나가 시스템 오류없이 실패 할 수 있으며 핫 스왑 컨트롤러에 투자하면 다운 타임없이 복구 할 수 있습니다.
미래를 보장하고 확장 할 수 있습니다. 당신은 2TB가 길 아래에 몇 년 드라이브를 구입하면, 당신은 볼륨 그룹 (아마도 더 많은 공간을 필요로 중에 추가, LVM 물리 볼륨으로 포맷을, 기계로 때리고 다른 SW의 RAID 세트로 만들 수 있습니다 lv_data
후) pvmove
기존 드라이브에서 새 드라이브로 데이터를 마이그레이션 하는 데 사용
합니다. 또한 주요 OS 업데이트는 훨씬 덜 고통 스러울 수 있습니다. 주요 업그레이드를 위해 OS를 다시 설치해야하는 경우 (Ahem Red Hat :(), 홈 디렉토리 (및 메일 스풀 및 다른 모든 것을 넣은 상태)를 유지하면서 그렇게 할 수 있습니다 vg_data
.
이 전략의 단점은 거의 없습니다. 약간 복잡하고 RAID 1 때문에 쓰기 성능이 떨어 졌다고 생각합니다. 그러나 저는 몇 년 동안 이러한 원칙에 따라 워크 스테이션과 독립형 서버를 구축해 왔습니다. 내가 원하기 전에이 라인을 따라 기계를 만들지 마십시오.
-스티브
추신 : 나는 당신이 신속하고 고통없이 새로운 기계를 프로비저닝 할 수있는 인프라가 있다면, 이와 같은 시스템은 과도하다고 생각합니다. RAID 세트 및 LVM을 수정하는 대신 변경 사항이 필요한 경우 머신을 다시 빌드하십시오.
몇 년 동안 내가 사용한 모든 컴퓨터는 이중 부팅 시스템이었으며 Linux 쪽에서는이 스키마와 거의 똑같이 붙어 있습니다 (여기서는 개인 워크 스테이션을 말하고 서버가 없으므로 마일리지가 다를 수 있습니다)
/ - main thing
/boot - not that relevant, since cylinder being < 1024 and
exotic filesystems are no longer an issue
/home - handy if you upgrade your laptop with each new distro :-)
마지막 업그레이드를 위해 처음부터 /
파티션을 지우고 설치했습니다 . 그로 인해 별도 /opt
또는 /usr/local
파티션이 좋을 것이라고 생각하게 되어 거기에 넣은 모든 것을 다시 설치 해야하는 번거 로움을 덜어줍니다 (Java, Eclipse ... 일반적으로 배포 패키지 패키지는 신경 쓰지 않습니다).
Eddie가 언급 한 파티션 외에도 일반적으로 두 개의 별도 파티션을 만듭니다.
/ tmp-같은 이유로 별도의 / var 파티션을 만들었습니다 (이전에 임시 공간이 모두 채워졌습니다). 나는 일반적으로 1-2GB로 간다
/ usr / local-별도로 설치된 모든 소프트웨어를 제거하지 않고도 필요에 따라 / usr을 업그레이드하고 정리할 수 있습니다. 여기의 크기는 설치하는 외부 소프트웨어의 양에 따라 다릅니다. 나는 일반적으로 약 10GB를 사용하지만 요즘에는 조금 작습니다.
나는 항상 / home을 마지막으로 만들고 나머지 디스크를 채 웁니다.
/ boot 파티션에서 100MB 이상으로 만들지 않았으며 공간 문제가 발생하지 않았습니다 (결국 오래된 커널을 정리합니다). 정말 작을 수 있습니다.
또한 스왑 파티션도 잊지 마십시오.
하드웨어 RAID를 사용하지 않는다고 가정하면 Linux에서는 항상 RAID 위에 LVM을 사용합니다. 단일 디스크 구성의 경우에도 마찬가지입니다. LVM 그룹을 확장하여 스토리지 공간을 추가하거나 중복 옵션을 변경하는 옵션이 있기 때문입니다 (예 : "이상한"단일 디스크 raid1 구성을 미러 된 디스크 또는 RAID10으로 약간 들기).
귀하의 질문에 대답하기 위해 나는 일반적으로 일반 서버와 비슷한 것을 가지고 있습니다. 2 개의 디스크 (1RU Dell)로 시작하며 둘 다 다음과 같이 파티션됩니다.
그런 다음 모든 볼륨을 LVM 볼륨으로 만듭니다. * / * / var * / tmp * / home * / opt
관리하기가 너무 어려워서 너무 많은 파일 시스템을 만드는 것을 피할 것입니다. 디스크가 부족한 경우 많은 파일 시스템에 여유 공간이 있지만 작업을 수행하기에 충분하지 않습니다.
별도의 파일 시스템에있는 / home 및 / tmp는 항상 좋은 생각입니다. 일반적으로 많은 것을 넣을 계획이 아니라면 분리 / opt하지 않습니다. (동일한 소프트웨어 스택이 필요한 서버가 많은 경우 NFS는 / opt에 대한 더 나은 옵션 일 수 있습니다)
간단히 말해서, 변경할 이유가없는 한 LVM을 사용하십시오.
또한 로그 서버를 사용하여 로그가 / var을 채우지 않도록하십시오!