가상 디스크 증가 후 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

정보 partprobe는 parted프로젝트 의 명령입니다 .
— 이브 마틴

새 디스크 크기 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.