최적의 UNIX 파일 시스템 파티션 + 설정 전략


16

UNIX 용 새 시스템 디스크를 분할 할 때 데스크탑 및 / 또는 서버 모두에 대해 선호하는 전략은 무엇입니까?

디스크 파티션 레이아웃, 파일 시스템 형식 및 옵션, 마운트 지점, RAID 레벨, LVM 그룹 및 볼륨, 암호화 및 기타 관련 설정을 포함하십시오.


질문은 거의 이것의 복제본처럼 보입니다 ( serverfault.com/questions/1145/… ).
Zoredache

워크 스테이션, 테스트 서버 또는 완전히 성숙한 온라인 서버에 해당합니까?
djangofan

답변:


9

나는 이런 종류의 문제에 대한 LVM의 팬입니다. / boot를위한 공간이 필요합니다 (약 100MB 사용). 동적으로 커지거나 줄어들거나 최소한 커질 수있는 파일 시스템과 결합하면 작은 파티션을 다시 생각할 필요가 없습니다.

데스크탑에서는 모든 파티션의 파일 시스템으로 XFS가있는 LVM을 사용합니다. 나는 가능한 한 작게 만들고 더 많은 공간이 필요할 때 성장하게합니다.


7

Linux 인 경우 별도의 / boot를 갖습니다.

다른 유닉스 변형의 경우 일반적으로 / 및 / var에 대한 파티션을 권장했으며 데이터는 일반적으로 / u001, / u002 등에 마운트됩니다.

이전에는 디스크 공간이 제한되어 있고 전체 시스템을 다운시키기 위해 하나의 채워진 파티션을 원하지 않았기 때문에 파티션을 많이 할 필요가있었습니다. 오늘날 사용 가능한 스토리지가 크게 증가하고 사용 가능한 다양한 크기 조정 및 가상화 옵션으로 인해 많은 파티션 IMO의 필요성이 줄어 들었습니다. 파티션이 많을 때 물건을 옮기는 것이 번거 롭다는 사실과 함께, 적은 비용으로 도망 갈 수 있다면 그렇게하십시오.

32GB의 메모리를 말할 때 2xRAM으로 스왑하는 것은 의미가 없습니다. 따라서 "규칙"은 실제로 지침이며 일부는 현재 사용 가능한 최신 하드웨어에 비추어 이해가되지 않습니다.


2
/ home에 더 많은 공간이 필요한 경우 외에는 항상 새 하드 드라이브를 마운트 할 수있을뿐만 아니라 최근에 분할이 필요하다는 언급에 +1했습니다.
Spoike

1
+1-대부분의 시스템에서 미친 파티셔닝 게임의 필요성을 경감시키는 것에 동의합니다. 일부 응용 프로그램으로 인해 빠른 디스크에 / var가 있어야한다는 것을 알고 있다면 그렇게하십시오. 종종 프로덕션 시스템에서 미친 파티셔닝 게임을 실행했을 때 작은 파티션으로 묶인 단일 하드웨어 RAID-1 볼륨이었습니다. 분명히 관리자). 복잡한 파티션 구성표에 대한 응용 프로그램이 있다는 것을 알고 있다면 사용하십시오. 당신이하지 않으면, 당신은하지 않습니다.
Evan Anderson

5

좋은 파티션 구조를 계획하는 것은 실제로 어떻게 시스템을 사용할 것인지 아는 것에 크게 좌우됩니다. 시스템이 수행하는 작업을 고려하지 않은 임의의 조언은 특별히 유용하지 않습니다.

모든 멋진 파일 시스템은 때때로 유용 할 수 있지만 안정적인 시스템을 원한다면 다른 것을 사용해야 할 이유가 없다면 '표준'파일 시스템 (예 : ext3)을 사용하는 것이 좋습니다.

RAID가 좋습니다. 너무 많은 하드 드라이브 오류가 발생했기 때문에 항상 모든 개인용 컴퓨터에서 RAID1을 실행합니다.

dm-crypt 와 같은 암호화 는 시스템이 휴대용 장치이거나 가치가 높은 데이터 또는 편집증이있는 경우에 좋습니다.

파티션을 계획 할 때는 파일 시스템 계층 표준 과 선택한 유닉스가 표준 과 다른지 여부를 잘 이해하는 것이 매우 도움이됩니다 .

LVM 을 사용 하면 나중에 마음을 바꾸고 재부팅하지 않고도 파티션을 조정하기가 훨씬 쉬워 질 수 있으며 스냅 샷을 만드는 기능은 백업을 매우 쉽게 만들 수 있습니다. LVM을 사용하고 모든 공간을 즉시 할당하지 마십시오.


5

FS 유형 외에 파티션을 나누는 데는 두 가지 이유가 있습니다.

  1. 시스템의 기능에 영향을주는 응용 프로그램의 초과 유출을 방지합니다. 앱이을 채우면 시스템을 계속 사용하고 로그를 기록 할 수 있도록 /usr약간의 공간을 남겨 두는 /var것이 좋습니다.

    Jauder는 위에서 이것이 오늘날 하드 디스크 크기에 의해 무효화된다고 말했습니다-이것이 사실이라고 생각하지 않습니다. 우리의 드라이브는 더 클지 모르지만 우리가 뒤집는 데이터는 계속 증가하고 있습니다. 만족할 필요가 없습니다.

  2. 마운트 옵션. 각 파티션이 채택해야하는 권한을보다 신중하게 정의 할 수 있습니다. 예를 들어, /tmp웹 응용 프로그램을 제공하는 컴퓨터의 일반적인 공격 경로이기 때문에 파일, 특히 suid를 실행하지 않는 것이 좋습니다 . 교도소를 운영하지 않는 한 어디에서나 장치 노드를 볼 수는 없습니다 /dev. 등등.

예.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  

4

물리 디스크 분할
최소 2 개의 디스크로 시작하십시오.

# 1 100MB, ID = 83 (Linux), 부팅 플래그 ON
# 2 남음, ID = FD (Linux Raid Auto)

100MB 파티션은 / boot 볼륨 용입니다. 유연성을 위해 모든 드라이브 (부팅이 아닌 경우에도)에이 드라이브를 남겨두면 나중에 드라이브를 부팅 할 수 있습니다. 디스크 크기가 일치하지 않거나 홀수 (500GB, 250GBx2) 인 경우 500GB 드라이브의 파티션을 나누어 더 작은 디스크에 맞 춥니 다.

RAID
에 100MB의 파티션을 사용 sda하고 sdb위한 RAID1 (미러) 볼륨을 생성합니다 /boot. 이됩니다 md0.

md0 / boot 100MB Ext2

/ boot에서 이국적인 FS를 사용하지 않아도됩니다.

나머지 공간은 다른 방법으로 설정할 수 있습니다. 64K 청크와 속도를 위해 "2 개의 원거리 복사"를 사용하는 RAID10 (미러 / 스트라이프)을 선택합니다. 따라서 드라이브를 점차적으로 업그레이드 할 수있는 유연성이 크게 향상됩니다. 다른 옵션은 RAID5 / 6을 수행하는 것입니다. 그러나 사용 가능한 공간은 가장 작은 파티션으로 제한되며 동일한 장치의 파티션을 사용하지 마십시오. 새로운 RAID 어레이의 이름을 md1, md2그리고에 있도록.

LVM을
제외한 모든 RAID 배열을 md0하나의 LVM 볼륨 그룹에 넣습니다 lvm_vg0. RAID5 및 RAID10 볼륨이있는 경우이 볼륨을 결합하지 않는 것이 가장 좋지만 아프지 않을 것입니다.

나머지 시스템 마운트에 대해 VG0을 분할하십시오. 필요한 경우 더 많은 공간을 추가하는 것이 상대적으로 쉬우므로이 숫자는 다소 보수적 일 수 있습니다.

lvm_vg0-root / 8GB Ext3 / ReiserFS (코어 배포 파일)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS (사용자 데이터, 문서)
lvm_vg0-data / data 60 + GB XFS (미디어, 대용량 파일, vm)

XFS 파일 시스템은 축소 할 수 없으므로 명심하십시오. 또한 온라인 루트 볼륨 축소가 지원되지 않을 수 있습니다.

업그레이드 디스크를 더 큰 크기로 교체하려면 몇 가지 옵션이 있습니다. 가장 쉬운 방법은 페어 이상 드라이브를 추가하고 현재 LVM VG에 새 RAID 어레이를 추가하는 것입니다.

다른 옵션은 현재 공간의 합에> = 인 단일 드라이브를 추가하는 것입니다. 예를 들어 RAID10에 두 개의 100GB 장치가있는 경우 새로운 200GB 장치를 추가하고 두 개의 이전 장치를 사용하여 미러링 할 수 있습니다. 이것은 오류가 발생하기 쉽지만 작동합니다.

필요한 경우 md#데이터를 유실하지 않고 LVM VG에서 장치를 제거 할 수 있습니다. 사용 된 모든 LVM 블록을 md#장치에서 다른 장치로 옮길 수있는 충분한 여유 LVM 공간이있는 경우 수행 할 수 있습니다 . LVM은 LV에 할당되지 않은 공간 만 사용할 수 있으므로 빈 파일 시스템은 "사용 가능한"공간으로 계산되지 않습니다.


1
/ boot의 이국적인 파일 시스템에 대한 두려움에 확신이 없습니다. ext3와 XFS는 2009 년에 더 이상 이국적이지 않습니다. liveCD가 드라이버와 함께 패키지로 제공되지 않았지만 요즘 거의 모든 것이 문제였습니다.
Dan Carley

@Casey, 물건을 옮길 충분한 여유 공간이 있다면 Ext3 볼륨을 "실시간"으로 줄일 수 있습니다. 그렇습니다. 이것은 못 쓰는 경험이지만, 해냈으며 광고 된대로 작동합니다. 매개 변수에 매우주의하십시오.
Avery Payne

2

난 그냥 리눅스 워크 스테이션을 실행합니다. 나는 ext3 파일 시스템을 사용하고 크기는 디스크의 크기에 다소 의존하며, 더 큰 디스크의 파티션에 더 관대합니다. 이들은 대략 파티션 테이블에 나타나는 순서대로되어 있습니다 :

  • / boot-100MB
  • 스왑 공간-2xRAM
  • / usr-10-20GB
  • /-5-10GB
  • / var-1-2GB
  • / tmp-1-2GB
  • / usr / local-10-20GB
  • / home-다른 모든 것.

두 개의 750GB 드라이브가있는 대학의 아내 워크 스테이션에서, 우리는 위의 것 외에도 / data / N에 마운트 된 다양한 드라이브에 걸쳐 12 개의 ~ 100GB 파티션을 만들었습니다. 여기서 N은 1에서 12까지의 숫자입니다 그녀는이를 사용하여 다른 연구 프로젝트에 대한 데이터를 보유합니다.


개인적으로 / var, / usr이 다른 파티션으로 분리되어 있다는 이점은 없습니다. 사용자 정의 설치 소프트웨어 (= 패킷 관리를 통해 설치되지 않은)가있는 경우 / usr / local이 좋은 아이디어 일 수 있지만 언급 된 두 가지는 매우 쓸모가 없습니다. 또한 스왑으로 2xRAM이 필요하지 않습니다. 시스템 교체가 시작되면 모든 것이 느리게 진행되므로 처음에는 이것을 피하고 싶을 것입니다. 나는 때때로 디스크에 suspend-to-disk를 사용하기 때문에 Ramsize + X를 가진 스왑 파티션 만 가지고있다.
Martin

2
@Martin, 오징어 캐시 역할을하는 Linux 상자에서 스풀 디렉토리와 로그 디렉토리가 빠른 디스크에 있기를 원하며 일반적으로 신뢰할 수있는 디스크가 필요하지 않습니다. 스풀을 RAID0 (스트라이프)에 넣고 (/ var) 다른 모든 것을 느린 드라이브에 남겨 둘 수 있습니다.
Zoredache

@Martin-당신이 맞습니다 ./usr을 분리하는 것은 아마도 불필요하며 항상 더 이상 그렇게하지는 않습니다. swap = 2xRAM은 256MB 이하의 RAM만으로 시스템을 구성하던 시절에 남겨진 오래된 습관입니다.
dagorym

1
실제로 / usr 및 / var를 분할하면 다른 저널링이 아닌 다른 저널링을 활성화 할 수 있습니다.
Scott

1
또한 / var을 별도의 파티션에 배치하면 / var 만 로그 파일로 채워져 시스템이 무너질 수 있습니다.
wzzrd

1

모든 디스크에서 noatime을 사용하십시오 (이유가없는 한) tmpfs에 / tmp를 마운트하지만 서버에서는 그렇게 좋지 않을 수도 있지만 별도의 파티션인지 확인하고 별도의 파티션인지 확인하고 nodev, nosuid, noexec, noatime . 나는 항상 / boot에 ext2를 사용하므로 grub으로 부팅하는 기능을 망쳐 놓는 fs 항목을 변경하는 것에 대해 걱정할 필요가 없습니다. 다른 모든 것에 대해서는 ext4, / home에 journal = data를 사용합니다 (아마도 할당 해제가 없기 때문에) 속도가 약간 느려지지만 journal = data로 데이터를 잃어 버린 적이 없으며 최신 / 최고입니다. 창녀, 때로는 내 시스템이 잠기고 하드 리셋해야합니다 (kms와 같은 것을 시도하고 버그를 발견했기 때문에).


1
'nodiratime'도 사용하는 것을 잊지 마십시오. 그렇지 않으면 수많은 inode (및 실제 디스크 쓰기)로 vfs_cache_pressure를 추진하게됩니다.
Gazzonyx 2016 년

0

와, 좋은 질문입니다. yonks에 대한 완벽한 답변을 위해 서핑을했습니다.

나는 개인적으로 50MB / boot ~ 8GB를 가지고 있고 나머지는 / home으로 간다. 대체 파일 시스템을 조사해야합니다. 현재 ext3을 사용하고 있지만 다른 파일 시스템 (예 : XFS)의 장점을 들었습니다.

나는 보통 / tmp를위한 파일 컨테이너를 순수하게 만들어서 나중에 더 유연하게 만들 수있다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.