[server] 가상 디스크 증가 후 Linux PV 파티션을 온라인으로 확장하는 방법

VMware를 사용하면 VM이 실행될 때 가상 디스크의 크기를 온라인으로 확장 할 수 있습니다. Linux 시스템의 다음 단계는 다음과 같습니다.

  1. 파티션을 확장하십시오. fdisk
  2. PV 크기를 확장 pvresize
  3. lvresize작업에 자유 범위를 사용
  4. 그런 다음 resize2fs파일 시스템

그러나 나는 첫 번째 단계에 붙어 fdisk있으며 sfdisk여전히 디스크의 이전 크기를 표시합니다.

내 디스크는 가상 LSI Logic 컨트롤러 덕분에 연결된 SCSI 가상 디스크입니다.

재부팅하지 않고 Linux 커널에서 사용 가능한 가상 디스크 크기 및 파티션 테이블 정보를 새로 고치는 방법은 무엇입니까?

VMWare 도구 덕분에 재부팅하지 않고 사용자 작업을 수행하지 않고도 실행중인 Windows에서 가능한 모든 단계를 알 수 있습니다. Linux에서는 온라인으로 모든 단계를 수행 할 것으로 예상되며 2 단계, 3 단계 및 4 단계가 온라인으로 작동한다는 것을 이미 알고 있습니다. 그러나 파티션 테이블에 선언 된 첫 번째 파티션 크기 변경 (여전히)에는 재부팅이 필요한 것 같습니다.

업데이트 : 내 시스템은 커널 2.6.26의 데비안 레니 (Debian Lenny)이고, 확장 한 디스크는 “/”에 대한 “루트”LV를 포함하는 큰 PV가있는 기본 디스크입니다.



답변

재부팅하지 않고도이 작업을 수행 할 수 있습니다. pvresize는 파티션이 추가 된 공간으로 업데이트 될 때까지 물리 볼륨의 크기를 조정하지 않습니다. 처음에 여분의 공간이 있는지 드라이브를 다시 스캔 한 후에는 파티션을 fdisk하고 새로운 전체 크기의 디스크로 다시 작성해야합니다.

자세한 정보 :
http://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/


답변

제공된 다른 답변은 귀하의 질문을 해결하지 못합니다. 이미 연결된 디스크를 다시 검색하는 올바른 명령을 식별했습니다.

이미 연결된 디스크를 다시 검색해야합니다. 먼저 다시 검색 할 디스크를 식별하십시오.

ls /sys/class/scsi_disk/

이 예에서는이라는 심볼릭 링크 0:0:0:0가 표시되므로이 scsi-disk를 다시 스캔합니다.

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

방금 VMware 디스크를 확장했으며 올바른 명령을 찾기 위해 다른 답변을 찾아야했습니다. 희망적으로 이것은 미래의 검색 자들이 헛된 시도로부터 구해줄 수 있기를 바랍니다.


답변

/크기가 조정 된 디스크에 루트 파일 시스템 이 마운트되어있는 한, Linux 2.6.26의 SCSI 재검색으로 파티션 테이블과 디스크 크기가 새로 고쳐지지 않습니다.

새로운 커널 버전으로 더 빨리 나아지기를 바랍니다.

그래서 나는해야했다 :

  • 새 디스크 크기를 보려면 처음으로 다시 부팅하십시오. fdisk
  • 에서 이전 기본 PV 부분을 삭제하십시오. fdisk
  • 동일한 번호의 파티션 항목을 작성하고 디스크 끝까지 섹터를 시작하십시오.
  • 다시 부팅하거나 패키지에 마운트되지 않은 경우에만 패키지 partprobe에서 실행parted/
  • 지금은 실행할 수있는 pvresize새로운 여유 공간을 얻기 위해, lvextend그리고 resize2fs파일 시스템에 좀 더 많은 공간을 할당

pvcreateGrub2가 LVM 파티션의 파일 시스템에서 직접 커널 이미지를로드 할 수 있기 때문에 어리석은 이전 파티션 테이블을 버리고 장치 에서 직접 실행하는 것이 좋습니다 . 그러나 배포 설치 프로그램에서는 이러한 설정이 전혀 명확하지 않습니다.

업데이트 : 방금 커널 3.16 및 parted3.2를 실행하는 데비안 GNU / 리눅스 Jessie 8.2를 확인했는데 , partprobe이제는 cfdisk재부팅하지 않고 파티션 테이블 에디션 후에 성공합니다 . pvresize직후에 작동합니다.

논리 PC 파티션으로 저장된 PV를 확장하려는 경우 (예 : /dev/sda5확장 기본 파티션 /dev/sda2) 다음을 사용하지 말고 fdisk선호하십시오 parted.

parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5


답변

더 큰 파티션을 만들기 전에 디스크를 다시 스캔해야합니다.

Centos에서는 다음을 수행 할 수 있습니다.

ls /sys/class/scsi_host

그런 다음 각 호스트에 대해

echo "- - -" > /sys/class/scsi_host/host#/scan

(#을 숫자로 바꿉니다)

파티션의 크기를 조정하면 ext 또는 사용중인 파일 시스템을 확장하는 위의 단계가 하나 더 있습니다.

어떤 시점에서 여전히 해당 파티션을 마운트 해제해야합니다. 우리가하는 일은 두 번째 vmware 디스크를 추가하고 lvm을 사용하여 새 디스크로 확장하고 교체하는 경우 기존 디스크를 줄임으로써 전체 프로세스가 실시간으로 수행되도록하는 것입니다.


답변

업데이트 된 답변으로 Ubuntu 16.04.1에서 다음을 수행하여 볼륨을 1024GB에서 1.4TB로 크기를 조정할 수있었습니다.

echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt

fdisk필요 하지 않았 으며 공간을 즉시 사용할 수있었습니다.


답변

필요한 정확한 명령을 알려주기에는 충분한 세부 정보를 제공하지 않았지만 기본적으로 lvextend명령을 사용하여 논리 볼륨을 확장 e2fsck한 다음 resize2fs명령을 실행 한 다음 실제로 파일 시스템을 확장해야합니다. 이러한 각 명령에는 장치 및 파일 시스템 정보와 같은 추가 매개 변수가 필요하지만 우리가 제공 할 수는 없지만이를 알아야합니다. 각 명령에 대해 –help 옵션을 사용하여 명령을 사용하는 방법을 알려주십시오. 당신은 아마를 사용하게 될 겁니다 pvdisplay, lvdisplay그리고 mount도움에 명령이 매개 변수를 작성하십시오.


답변

아무도 완전한 명령 집합을 게시하지 않았으므로 여기로 이동합니다.

# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root
resize2fs /dev/vgname/root

#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root
resize2fs /dev/vgname/root