하나의 큰 파티션에 Linux를 설치하는 것이 얼마나 나쁜가? 우리 시스템 관리자는 하나의

새 서버에서 CentOS 7을 실행합니다. 서버 내부에는 raid6에 6 개의 300GB 드라이브가 있습니다. (스토리지는 40TB RAID 박스 형태로 대부분 외부에 있습니다.) 단일 볼륨으로 포맷하면 내부 볼륨은 약 1.3TB가됩니다. 우리 시스템 관리자는 하나의 큰 1.3TB 파티션에 OS를 설치하는 것이 정말 나쁜 생각이라고 생각합니다.

나는 생물 학자입니다. 우리는 지속적으로 새로운 소프트웨어를 설치하고 실행하고 테스트하며, 대부분은 / usr / local에 있습니다. 그러나 우리는이 시스템을 사용하는 컴퓨터에 정통하지 않은 약 12 ​​명의 생물학자가 있기 때문에 / home에서도 많은 cruft를 수집합니다. 마지막 서버에는 /에 200GB의 파티션이 있었고 2.5 년 후에는 90 %가 찼습니다. 나는 그런 일이 다시 일어나길 원하지 않지만 전문가의 조언에 반하고 싶지도 않습니다!

필요한 공간과 공간을 확보하기 위해 1.3TB를 사용하는 것이 가장 좋지만 시스템 관리자를위한 유지 관리의 악몽을 만들지 않겠습니까?



답변

파티셔닝의 주요 (역사적) 이유는 다음과 같습니다.

  • 하는 사용자 및 응용 프로그램 데이터에서 운영 체제를 분리 . RHEL 7이 출시 될 때까지 지원되는 업그레이드 경로 가 없었고 주 버전을 업그레이드하려면 다시 설치해야하고 /home별도의 파티션 (또는 LVM 볼륨) 에 예를 들어 기타 (애플리케이션) 데이터가 있으면 사용자 데이터를 쉽게 보존 할 수 있습니다 응용 프로그램 데이터 및 OS 파티션을 삭제하십시오.

  • 디스크 공간이 완전히 부족하면 사용자가 제대로 로그인 할 수없고 시스템이 흥미로운 방식으로 실패하기 시작합니다. 다중 파티션을 사용하면 OS에 하드 예약 된 디스크 공간을 할당하고이를 사용자 및 / 또는 특정 응용 프로그램에서 쓰기가 허용되는 영역 (예 : /home /tmp/ /var/tmp/ /var/spool/ /oradata/등) 과 별도로 유지 하여 잘못 작동하는 사용자 및 / 또는 응용 프로그램의 운영 위험완화 할 수 있습니다 .

  • 몫. 디스크 할당량을 통해 관리자는 개별 사용자가 사용 가능한 공간을 모두 사용하지 못하게하여 시스템의 다른 모든 사용자에게 서비스를 중단 할 수 있습니다. 개별 디스크 할당량은 파일 시스템마다 할당되므로 단일 파티션과 단일 파일 시스템은 하나의 디스크 인용 만 의미합니다. 다중 (LVM) 파티션은보다 세부적인 할당량 관리를 허용하는 다중 파일 시스템을 의미합니다. 사용 시나리오에 따라 예를 들어 각 사용자가 홈 디렉토리에서 10GB, 외부 스토리지 배열의 / data 디렉토리에서 2TB를 허용하고 누구나 홈 디렉토리에 대해 너무 큰 데이터 세트를 덤프 할 수있는 큰 공유 스크래치 영역을 설정할 수 있습니다. 정책이 “전체 꽉 참”이되는 곳이 발생하면 아무 일도 일어나지 않습니다.

  • 전용 IO 경로 제공 . SSD와 회전 디스크의 조합이있을 수 있으며 다른 방식으로 해결하는 것이 좋습니다. 범용 서버에서는 그다지 문제가되지 않지만 데이터베이스 설정에서 매우 일반적인 문제는 특정 스핀들 (디스크)을 다른 목적으로 할당하여 IO 경합을 방지하는 것입니다 (예 : 트랜잭션 로그의 별도 디스크, 실제 데이터베이스 데이터의 별도 디스크 및 별도) 임시 공간을위한 디스크. .

  • 부팅 별도의 /boot파티션 이 필요할 수 있습니다 . 역사적으로 1024 실린더 한계를 넘어서 부팅하는 BIOS 문제를 해결하기 위해 요즘에는 암호화 된 볼륨을 지원해야하는 요구 사항, 특정 RAID 컨트롤러, SAN에서 부팅을 지원하지 않는 HBA 또는 설치 프로그램이 즉시 지원하지 않는 파일 시스템 등을 지원하는 경우가 많습니다.

  • 튜닝 다른 튜닝 옵션 또는 완전히 다른 파일 시스템이 필요할 수 있습니다.

하드 파티션을 사용하는 경우 설치 시점에 하드 파티션을 어느 정도 가져와야하며, 하나의 큰 파티션은 최악이 아니지만 위의 몇 가지 제한 사항이 있습니다.

일반적으로 주 볼륨을 하나의 큰 Linux LVM 물리 볼륨 으로 분할 한 다음 현재 요구 사항과 나머지 디스크 공간에 맞는 논리 볼륨생성 하여 할당 될 때까지 할당하지 않은 상태로 두는 것이 좋습니다.

필요에 따라 해당 볼륨과 파일 시스템을 확장하거나 (실제 시스템에서 수행 할 수있는 간단한 작업) 추가 볼륨을 생성 할 수 있습니다.

LVM 볼륨 축소는 쉽지 않지만 종종 파일 시스템 축소는 잘 지원되지 않으므로 피해야합니다.


답변

다중 파티션을 사용하는 개념은 잘못된 위치에있는 전체 파티션으로 인해 전체 시스템이 예기치 않게 작동하지 않는다는 것입니다.

사용 가능한 여유 공간이 없을 때까지 로그 파일을 채우는 시스템의 프로세스를 고려하십시오. 예를 들어 단일 파티션 머신에서 시스템이 / tmp에 새 데이터를 쓰지 못하게 할 수 있습니다. / tmp에 쓰려는 다른 프로세스가 있으면 오류와 함께 종료되어 예기치 않은 동작이 발생합니다.

사용자 또는 프로세스가 일반적으로 쓰는 위치 (/ home, / var, / tmp)에 다른 파티션을 사용하는 경우이를 방지 할 수 있습니다.

어떤 폴더가 커지는 경향이 있는지 이전 서버를 확인하는 것이 좋습니다. 명령 행에서 다음을 수행 할 수 있습니다.

du -h -d 1 / 2> /dev/null

가장 많은 데이터가 누적되는 위치를 확인하고 다음 시스템을 적절하게 설계하십시오. “-d 1″은 한 수준의 폴더 수준으로 만 출력을 제한하여 더 읽기 쉽습니다.


답변

하나의 큰 파티션을 갖는 주된 문제는 파일 시스템을 채우면 더 이상 로그인이 불가능하다는 것입니다.

이 때문에 사용자 루트의 홈 폴더 ( /root)가 외부에 /home있습니다. 어떤 상황에서 파일 시스템이 가득 차면 루트조차도 로그인 할 수없고 시스템을 복구 할 수 없습니다.

이것은 일반적으로 별도의 설치 지점을 만들 이유입니다 /var, /tmp그리고 /home다른 파티션 중 하나가 가득 때 시스템을 복구하는 루트로 적어도 로그인 할 수 할 수 있습니다.


답변

IMHO는 하나의 파티션을 /로 사용하는 것이 매우 합리적입니다.

그러나 lvm (논리 볼륨 관리자)을 사용할 수 있습니다. 모든 디스크를 lvm 그룹으로 사용하지만 /, / home, / usr 및 sysadmin이 선호하는 모든 것을위한 작은 논리 디스크를 작성하십시오. 그런 다음 시스템이 가득 차기 시작할 때 모니터링을 시작하고 필요한 디스크를 확장하십시오. lvresize 및 resize2fs는 온라인 도구이며 서버를 다시 시작하지 않고도 확장을 수행 할 수 있습니다. 그러나 디스크를 줄일 수 없으므로 합리적으로 작게 시작하고 필요에 따라 증가시켜야합니다.


답변

Linux의 단일 단일 파티션 설정에는 최소한의 문제가 있지만 큰 보상이 있습니다.

파티션 레이아웃을 변경하는 것은 약간 어렵고 위험한 일이며, 다운 타임이 길지 않으면 종종 할 수 없습니다.

유일한 장점은 디스크 전체 문제에 대한 보호 기능이 있다는 것입니다. 하지만 당신은 이러한 문제를 발견 할 것이다 훨씬 자주. 파티션 중 하나가 가득 차서 다른 파티션의 공간이 거의 비어 있어도 상황을 상상해보십시오 !

일부 전문 시스템 관리자는 이에 대해 완전히 다른 의견을 가지고 있습니다. 여러 파티션을 사용하면 시스템을보다 안정적으로 만들 수 있으며 파티션을하기 전에 파티션의 크기를 알아야합니다. 내 생각에 이것은 단순히 말할 수 없으며 시스템의 유연성에 대한 끔찍한 단점이며 실제로 동기 부여는 파티션 맵을 가지고 노는 것을 좋아 한다는 것 입니다.

lvm 이라는 간단한 시스템이 있는데 , 이는 “파티션”(용어, 볼륨)의 즉각적인 이동 / 크기 조정을 가능하게합니다. 그러나 단일 로컬 부서 서버에서 IMHO는 일반적으로 필요하지 않습니다.


답변

파티셔닝에는 두 가지 주요 이유가 있습니다.

  1. 정적 데이터를 비 정적 데이터로부터 멀리 유지하려면
  2. 공개 데이터를 개인 데이터로부터 멀리 유지하려면

첫 번째 이유는 가장 분명한 것입니다. 부팅 할 수없는 시스템을 피하기 위해, 특히 /를 보호하지 않으려는 파일과 파일로 채워지는 영역을 분리해야합니다. 예를 들어, / var 디렉토리는 일반적으로 로그 파일이 저장되는 위치이며 (var은 “변수”를 나타냄) / var가 /와는 별도의 파티션에 마운트되는 이유입니다.

위의 두 번째 이유는 덜 인용되어 있으며 (약 15 년 전 Veritas Volume Manager 과정에서 들었습니다) 실제로 많은 사람들이 로그인하여 작업을 수행하는 시스템과 관련이 있습니다.

효과적인 패 러닝을하는 데에는 예술적인 것이 있습니다. 이것이 아마도 Sys Admins가 그것을 너무 멀리 가져가는 이유 일 것입니다 (IMO). 파일 시스템 내부를 알아야 할뿐만 아니라 의도 된 용도도 알아야합니다. 나는 개인적으로 그것이 오늘날 서버가 사용되는 방식과 점점 관련성이 떨어지는 구식 접근 방식이라고 생각합니다.

소프트웨어 개발자로서 특히 사용 가능한 총 디스크 공간에 관계없이 / tmp, / home, / var 및 /의 크기를 심각하게 제한하는 사려 깊은 파티셔닝 구성표를 사용하여 가상 머신을 구축하는 Ops 부서에 매진하고 있습니다. / usr 또는 / opt와 같은 명백한 선택을 별도로 마운트하지 마십시오. 이러한 시스템은 일반적으로 요청한 디스크 공간에서 남은 모든 것을 “/ stuff”볼륨에 넣게되어 필연적으로 모든 것을 설치하고 연결하게되지만, 그다지 큰 문제는 아닙니다. 그 결과 실제 작업보다 파일을 섞고 경고 이메일을 보내는 데 더 많은 시간을 소비하게됩니다.

단일 파티션을 갖는 것에 대해 본질적으로 “나쁜”것은 없습니다. 어느 시스템에서나 디스크 사용량을 사전에 모니터링하고 합리적인 하우스 키핑 전략 (예 : 로그 회전, 홈 디렉토리의 할당량)을 사용해야하므로 유일한 질문은 몇 개의 개별 파일 시스템을 걱정하고 싶습니까?

따라서 특정 사용 사례에 맞게 시스템을 효과적으로 분할 할 수 있다고 100 % 확신하지 않는 한 전혀 분할하지 마십시오 .


답변

IMHO 그것은 전적으로 당신에게 달려 있습니다. 우선은 몇 가지 사항을 고려하십시오.

  • 이 시스템은 자주 관리됩니까?
  • 이 시스템은 한 명 이상의 사용자가 사용합니까?
  • 이 시스템이 데스크탑 또는 서버 또는 둘 다의 역할을합니까?

마운트 지점은 거의 모든 디렉토리를 고려할 수 있기 때문에 약간 증가하는 데이터가 포함 된 것과 증가하는 데이터가 포함 된 것을 고려해야합니다.

리눅스 시스템 (데이터가 약간 증가)이 실행하는 데 필요한 양이 적고 데이터가 증가하여 소비되는 양 (일반적으로 / var / opt / home / srv)에 놀랄 것입니다.

또한 파티셔닝 요구 사항을 요약 한이 시스템의 사용을 정의하는 방법에 따라 다릅니다. LVM 사용이 포함되었습니다.

일반적인 데스크톱 시스템은 많은 양의 소프트웨어를 설치하는 데 약 20GB가 필요하며 나머지는 전용 / home에 할당하면 정상적으로 작동합니다. LVM은 시스템에 약간의 오버 헤드를 유발하며이 경우 특별한 이점이 없습니다. 의견은 다를 수 있습니다.

서버에서는 설치된 소프트웨어가 데스크탑 시스템처럼 동적 일 가능성이 적습니다. / tmp / var / usr / home / opt / srv와 같은 일반적인 파일 시스템 구성 요소에 대한 실제 마운트 지점을 갖는 것이 더 현명합니다. 여기서 LVM을 사용하는 것은 필수는 아닙니다.

이를 통해 시스템의 모듈성을 향상시킬 수 있으며 예를 들어 해당 파티션을 VM에 복제하는 등의 어리석은 작업을 수행 할 수 있습니다. 또는 dd를 사용하여 블록 레벨 백업을 작성하십시오.

일부 경험을 바탕으로 몇 가지 참고 사항이 있습니다. 또한 여러 개의 마운트 포인트를 사용하여보다 효과적으로 제어 할 수 있다는 점을 고려하십시오. 빠른 또는 느린 디스크 장치를 마운트 포인트에 할당하면 차이가 생길 수 있으며 현저하게 비용 효율성이 높아질 수 있습니다.

마운틴 포인트 /

  • 1GB (/ var / usr / opt / home / tmp에 별도의 마운트 지점을 사용하는 경우)
  • 별도의 / home이있는 데스크탑 시스템으로 사용하는 경우 +10 또는 + 20GB

마운트 포인트 / home을 사용하는 경우

  • 사용 가능한 경우 모든 여유 공간을 지정하십시오. / home ne

마운트 포인트 / opt를 사용하는 경우

마운트 포인트 / usr을 사용하는 경우

  • 이것은 까다 롭고 설치된 소프트웨어 기반에 크게 의존합니다.

마운트 포인트 / var를 사용하는 경우

  • 이것은 까다 롭고 설치된 소프트웨어 기반에 크게 의존합니다.
  • 예를 들어, 데이터베이스가 모든 Linux가 아닌 데비안 기반 시스템에 여기에 데이터를 기록합니다.
  • 별도의 / var / tmp를 갖는 것은 무리가 없습니다

마운트 포인트 / tmp를 사용하는 경우

  • tmpfs가 존재하고 / tmp를 RAM에 할당 한 것으로 간주
  • 일부 응용 프로그램은 여기에 많은 데이터를 쓸 수 있습니다