하나의 파일 시스템 공간을 다른 파일 시스템에 추가하고 싶습니다.
/dev/cciss/c0d0p2 152358920 143606116 888588 100% /db2
/dev/cciss/c0d0p15 203899764 50767420 142607764 27% /db2/ade/sapdata1
이 경우에는 에서 까지 /db2/ade/sapdata1
입니다. /db2
우리 서버도 LVM 형식으로 설치되지 않습니다.
여유 공간을 확보하려면 어떻게 해야 합니까 /db2
?
답변1
이 작업의 어려움은 두 파티션의 블록 레이아웃에 따라 달라집니다. 시작 및 끝 블록 측면에서 디스크에서 어느 파티션이 먼저 나오는지, 다른 파티션이 있는지 또는 그 사이에 빈 공간이 있는지 등이 있습니다. 잠깐만요.... ..
사용되는 파일 시스템도 /db2/ade/sapdata1
축소를 지원해야 합니다. 예를 들어 xfs는 그렇지 않습니다.
참고하실 수 있도록 예를 들어보겠습니다. 이것은 매우 위험한 작업이므로 권장하지 않습니다. 그러나 그것은 당신에게 무엇이 관련되어 있는지에 대한 아이디어를 줄 것입니다. 이 예는 가장 간단한 경우입니다. 파티션의 한 위치에서 다른 위치로 데이터를 뒤로(마지막 블록에서 첫 번째 블록으로 계산) 이동해야 할 수도 있으므로 다른 경우는 훨씬 더 어렵습니다.
p15가 먼저 디스크에 저장되고 그 다음 p2가 저장되고 함께 다른 파티션이나 사용 가능한 블록 없이 전체 디스크를 차지한다고 가정합니다. 해야 할 일은 다음과 같습니다.
- p15의 파일 시스템 축소
- p15 파티션을 파일 시스템의 새 크기로 축소합니다. 이렇게 하면 두 파티션 사이에 여유 공간이 생성됩니다.
- p2(/db2) 제거
- p2 파티션의 시작 블록을 2단계에서 사용할 수 있는 첫 번째 여유 블록으로 변경합니다(즉, 파티션의 시작 위치를 디스크의 이전 위치로 백업).
디스크에서 데이터를 뒤로 이동하려면 다음 명령을 사용하십시오.
dd if=/dev/cciss/c0d0p2 of=/dev/cciss/c0d0p2 bs=xxx skip=yyy
xxx
청크 크기는 나머지 없이 성장 중인 파티션 수로 나누어야 하며,yyy
바이트 수를 성장 중인 파티션 수로 나눈 값이어야 합니다xxx
./db2 파일 시스템을 확장하십시오.
상상할 수 있듯이 5단계는 매우 위험한 작업입니다. 실행에 오랜 시간이 걸릴 수 있으며, 실패하거나 중단될 경우 복구가 어려울 수 있습니다. 너~ 해야 하다이렇게 하면 자신이 무엇을 하고 있는지 알 수 있습니다.
Linux에서 실행 중인 경우 또 다른 옵션은 기존 데이터를 모두 그대로 두고 장치 매퍼를 사용하여 기존 파티션과 인접하지 않은 일부 빈 공간을 연결하여 더 큰 가상 파티션을 형성하는 것입니다. 이것은 기본적으로 LVM이 수행하는 작업이지만 자동으로 투명하게 블록 범위를 연결하는 멋진 LVM 사용자 인터페이스와 메타데이터가 없습니다.