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


14

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가있는 기본 디스크입니다.

답변:


9

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

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


동의하지만 SCSI 드라이브를 다시 스캔하기 위해 fdisk에 새 디스크 크기가 표시되지 않으므로 처음 재부팅 할 때까지 멈추었습니다. "partprobe"는 저에게 새로운 명령입니다. 확실히이 절차를 테스트해야합니다 ... 감사합니다.
Yves Martin

정보 partprobeparted프로젝트 의 명령입니다 .
이브 마틴

새 디스크 크기 fdisk가 보이지 않으면 LVM에 문제가없는 것입니다. 일반적으로 새 디스크 크기를 선택하기 때문에 스캔 방법을 묻어 야합니다. 또한 LVM을 사용할 수있는 디스크를 분할하지 않습니다. 당신이 경우 pvcreate다음 파티션 테이블을 업데이트하는 전체 디스크는 크기를 조정 갈 때 당신이해야 할 한 적은 것입니다.
Bratchley

14

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

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

ls /sys/class/scsi_disk/

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

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

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


완벽하게 일했습니다!
Emil Styrke

에서 "/ dev /"이름으로 디스크를 찾을 /sys/block/수도 있으므로 예를 들어 사용할 수 있습니다 /sys/block/sda/device/rescan.
mwfearnley

4

/크기가 조정 된 디스크에 루트 파일 시스템 이 마운트되어있는 한, 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

마지막 명령이 작동하지 않음 번호 헤어진는 / dev / sda2가 -1 -> 헤어 : 잘못된 옵션 - '1'
오스카 Berggren

3

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

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

ls /sys/class/scsi_host

그런 다음 각 호스트에 대해

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

(#을 숫자로 바꿉니다)

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

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


내 시스템은 데비안이며 scsitools에서 rescan-scsi-bus.sh를 실행합니다. / sys / class / scsi_host에서 제안한 명령과 동일하다고 생각하지만 "fdisk"는 여전히 내 디스크의 이전 크기를 표시합니다.
Yves Martin

다시 검색 할 때 새 vmware 디스크를 인식합니까?
JamesRyan

아니요.이 디스크는 이미 존재하며 새 디스크가 아닙니다. vSphere Client에서 디스크 크기가 증가했습니다.
Yves Martin

나는 당신이 스캔을 통해 문제를 좁히기 위해 그것을 선택했는지 확인하기 위해 새로운 것을 추가해야한다는 것을 알고 있습니다
JamesRyan

동의합니다. 이미 나열된 모든 단계에서 Linux 시스템에 새 SCSI 디스크를 추가 할 수 있다는 사실을 이미 알고 있습니다. VM이 10 년 동안 실행될 수 있기 때문에 ... 가까운 시일 내에 총 디스크 수를 두려워합니다 ...
Yves Martin

2

업데이트 된 답변으로 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필요 하지 않았 으며 공간을 즉시 사용할 수있었습니다.


3
운이 좋다 그 이유는 파티션 테이블이 없지만 직접 PV on을 사용하기 때문입니다 /dev/sdb. 이것은 아마도 응용 프로그램 데이터 전용 보조 디스크 일지 모르지만 시스템이있는 첫 번째 디스크는 아닙니다 (내 시스템을 같은 방식으로 구성한다고 언급하십시오!). 내 질문은 리눅스 배포판이 직접 PV에 설치를 지원하지 않는 반면 Linux 커널과 GRUB은 시스템 디스크에서 부팅하고 실행할 수 있어야하는 한 "시스템 디스크"(템플릿에서 복제)의 마지막 PV / 파티션 확장에 관한 것이 었습니다 파티션 테이블이 전혀 없습니다.
Yves Martin

페어 포인트. 구글을 통해 이것을 찾는 사람들을 위해 : 명심하십시오.
peelman December

1

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


다른 단계에 대한 모든 명령을 알고 있습니다. 내 질문은 : 재부팅없이 PV로 사용되는 기본 파티션을 늘리는 방법은 무엇입니까?
이브 마틴

죄송합니다. pvresize를 의미합니까?
Chopper3

나는 내 질문이 충분히 명시 적이 지 않다는 것에 동의한다 (굵은 글씨로도) pvresize는 2 단계로 언급됩니다. 1 단계에서 멈췄습니다. "PCAT"파티션 크기를 늘리십시오.
이브 마틴

VSClient를 통해 .vmdk 크기를 늘렸습니까?
Chopper3

3
/sbin/rescan-scsi-busdooes 를 확인하려면 기존 디스크 크기를 변경하지 마십시오. 그러나 echo "1" > '/sys/class/scsi_disk/0:0:1:0/device/rescan'않습니다
이브 마틴에게

0

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

# 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

디스크를 제거하여 죄송하지만 각 디스크 증가시 디스크, 파티션 및 PV를 추가하는 것은 "추악한"것이며 확장되지 않습니다. 내 질문은 디스크 또는 파티션 또는 PV를 추가하지 않고 디스크의 기존 기본 파티션을 확장하는 것에 관한 것입니다.
이브 마틴
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.