ฉันจะให้ Centos VM อ่านใหม่ขนาดดิสก์ที่เพิ่มขึ้นได้อย่างไรโดยไม่ต้องรีบูต


16

ฉันมี CentOS 5 VM และฉันเพิ่งเพิ่มดิสก์ VM จาก 10G เป็น 20G แต่ฉันไม่สามารถรับ fdisk เพื่อดูขนาดดิสก์ใหม่โดยไม่ต้องรีบูต

ฉันพยายามecho 1 > /sys/block/sda/device/rescanแล้วดูเหมือนว่าจะเห็นขนาดใหม่ แต่เมื่อฉันไปที่ fdisk เพื่อสร้างพาร์ทิชันใหม่มันยังคงเห็นดิสก์เป็น 10G

ความคิดใด ๆ


ขึ้นอยู่กับแพลตฟอร์มเวอร์ชวลไลเซชันและวิธีการเก็บข้อมูลของคุณสิ่งนี้อาจเป็นไปได้หรืออาจเป็นไปไม่ได้ เรื่องรายละเอียด
womble

ประเภทของดิสก์เสมือนที่คุณเพิ่ม: IDE หรือ SCSI
quanta

คำสั่งแรกนั้นใช้ได้กับฉัน ...
Rodo

คำตอบ:


11

คุณต้องใช้คำสั่ง rescan กับบัส SCSI ของคุณ

ใน VMware คอนโทรลเลอร์ SCSI อาจพบได้ในสถานที่ที่ผิดปกติ ก่อนอื่นพบว่า:

find /sys -iname 'scan'

สำหรับฉันที่กลับมา

/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan

จากนั้นเพียงออกคำสั่ง rescan

echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host1/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host2/scan

ที่ควรช่วย :)


5
ls /sys/class/scsi_host อาจจะเร็วกว่า
quanta

11

ฉันต้องจัดการกับปัญหาที่คล้ายกันบนเซิร์ฟเวอร์ SLES 11 LVM ถูกสร้างขึ้นด้วยดิสก์ดิบทำงานบน VMWare ESXi

# pvcreate /dev/sdd; vgextend ....

หลังจากที่ในขณะที่ฉันต้องการเพิ่มขนาด LVM แต่ฉันไม่ได้เพิ่มดิสก์เสริมแล้ว pvcreate + vgextend อย่างที่ฉันเคยทำมาก่อน แต่ฉันเลือกที่จะเพิ่มขนาดของดิสก์ที่มีอยู่ (/ dev / sdd ในกรณีนี้ ) หลังจากทำการเพิ่มใน VMWare ฉันดำเนินการ

# rescan-scsi-bus.sh

แต่ pvdisplay ยังคงแสดงขนาดดิสก์ 'เก่า' มันจำเป็นต้องทำ

# echo 1 > /sys/block/sdd/device/rescan

เพื่อให้เคอร์เนลเรียนรู้ขนาดดิสก์ใหม่ของ / dev / sdd


6
echo 1 > /sys/block/sda/device/rescanทำงานให้ฉันใน CentOS
Benedikt Köppel

-bash: / sys / module / scsi_mod / พารามิเตอร์ / สแกน: การอนุญาตถูกปฏิเสธชื่อผู้ใช้เป็น root
Sarz

7

หลังจากทำครั้งแรก echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda ทำเคล็ดลับสำหรับฉัน


3

หากมีการใช้งานตารางพาร์ติชันโดยตรง (เช่นคุณติดตั้งระบบไฟล์โดยใช้พาร์ติชันฐาน) เคอร์เนลจะยังคงใช้ตารางพาร์ติชันเก่าต่อไปจนกว่าจะไม่เป็นเช่นนั้นอีกต่อไป มีคนเคยบอกฉันว่าถ้าคุณใช้ LVM คุณสามารถแก้ไขเรื่องนี้ได้ ....


2

อัพเดต: Centos 6 - ไม่สามารถอัพเดทตารางพาร์ติชันของดิสก์ที่ใช้งานออนไลน์ Centos 7 - เป็นไปได้ที่จะขยายพาร์ติชันล่าสุดด้วยGrowpartหรือสร้างพาร์ติชันใหม่ด้วย fdisk และทำให้มองเห็นได้โดยไม่ต้องรีบูตด้วยpartprobe partprobeอาจเหมือนกันบน ubuntu / debian - ณ จุดหลัง 2.6 เคอร์เนลเริ่มสนับสนุนการอ่านตารางพาร์ติชันของดิสก์ที่ใช้งานออนไลน์ เนื่องจากคำถามสำหรับ Centos 5 ฉันจะบอกว่าไม่มีทาง

หากคุณใช้พาร์ติชั่นคุณต้องรีบูตเพื่อใช้พื้นที่ใหม่ ฉันไม่พบวิธีที่จะหลีกเลี่ยงปัญหานี้ หากมีคนแจ้งให้เราทราบ

อย่างไรก็ตามการรีบูตควรทำหลังจากที่คุณขยายพาร์ติชันล่าสุดบนดิสก์หรือเพิ่มพาร์ติชันใหม่ ไม่ควรรีบูตก่อน

สิ่งแรกที่คุณควรสังเกตหลังจากการสแกนซ้ำมีขนาดดิสก์ที่ใหญ่กว่าใน fdisk และ lsblk หากคุณไม่เห็นคุณต้องเล่นกับคำสั่ง echo 1 และ echo - - - เหล่านี้

หลังจากที่คุณเห็นพื้นที่เพิ่มเติมที่คุณสามารถขยาย / เพิ่มพาร์ติชันแล้วรีบูตขยาย vg, ขยาย lv และ fs

หากคุณต้องการหลีกเลี่ยงการรีบูตคุณต้องกำหนด raw sda / b / c disk ให้กับกลุ่มวอลุ่มโดยไม่ต้องแบ่งพาร์ติชันเป็น sda1 / 2/3 จากนั้นไม่จำเป็นต้องรีบูต

การแบ่งพาร์ติชันเป็นสิ่งจำเป็นเมื่อไม่นานมานี้เมื่อ linux ไม่สามารถบูตจาก LVM ได้ แต่ตอนนี้สามารถทำได้

หากคุณทำ lsblk คุณจะเห็นพาร์ทิชันหรือ lvms ขึ้นอยู่กับว่าคุณกำลังใช้งานพาร์ทิชันหรือ lvm คุณสามารถมีทุกส่วนได้หากคุณไม่ได้ใช้ lvm หรือ lvms ทั้งหมดหากคุณไม่ใช้พาร์ติชัน นี่คือตัวอย่างหนึ่ง:

root@srv4 ~ $ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0  7.3T  0 disk
├─sda1                        8:1    0  500M  0 part /boot
└─sda2                        8:2    0  7.3T  0 part
  ├─vg_srv4-LogVol13 (dm-0) 253:0    0  7.1T  0 lvm  /
  ├─vg_srv4-LogVol05 (dm-1) 253:1    0  100G  0 lvm  /var/log
  ├─vg_srv4-LogVol04 (dm-2) 253:2    0   20G  0 lvm  /var
  ├─vg_srv4-LogVol01 (dm-5) 253:5    0   20G  0 lvm  /opt
  ├─vg_srv4-LogVol00 (dm-6) 253:6    0   20G  0 lvm  /home
  ├─vg_srv4-LogVol03 (dm-7) 253:7    0   20G  0 lvm  /usr
  └─vg_srv4-LogVol02 (dm-8) 253:8    0    8G  0 lvm  /tmp

0

วิธีตรวจจับการเปลี่ยนแปลงของดิสก์ที่มีอยู่:

echo 1 > /sys/class/block/sdX/device/rescan

วิธีตรวจหาดิสก์ใหม่:

echo 1 > /sys/class/scsi_device/X:X:X:X/device/block/device/rescan

ในการค้นหา X ในสถานการณ์แรกที่คุณสามารถfdisk -lใช้ได้

https://kerneltalks.com/disk-management/how-to-rescan-disk-in-linux-after-extending-vmware-disk/


-5

คุณต้องรีบูตไม่มีวิธีแก้ไข


ระบบบังคับให้สแกนซ้ำได้อย่างไร
quanta

ฉันต้องรีบูต :-(
AndyM

ฉันต้องรีบูทด้วย
ondra

1
นี่เป็นเรื่องจริงอย่างสมบูรณ์ ฉันได้ทำหลายครั้งโดยไม่ต้องรีบูตเครื่อง
Duncan X Simpson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.