一、磁盤空間不足,添加新的磁盤
一般來說,當我們在服務上插入新的磁盤時,服務器是會對磁盤進行識別的。但是,有的時候服務器並沒有對這些新插入的磁盤進行識別。這時,我們可以通過重啟服務器,來使服務器重新加載硬盤。
在生產環境中我們的服務器上都存在着重要的服務,並不可以對服務器進行重啟。下面介紹的就是無需重啟服務器,使其識別新磁盤的方法。
解決方法:
fdisk -l
添加了新磁盤並沒有發現兩種方法(一重啟,二重新識別)
一、查看磁盤大小
lsblk 查看的是block device,也就是邏輯磁盤大小。
df查看的是file system, 也就是文件系統層的磁盤大小。
二、查看主機總線號
ls /sys/class/scsi_host/
三、重新掃描SCSI總線添加設備
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
注意,如果掃描這三個文件不成,就全部掃描一遍
cat /usr/local/src/test.sh
#!/usr/bin/bash scsisum=`ll /sys/class/scsi_host/host*|wc -l` for ((i=0;i<${scsisum};i++)) do echo "- - -" > /sys/class/scsi_host/host${i}/scan done
#echo "- - -" > /sys/class/scsi_host/host0/scan 這三個值代表通道,SCSI目標ID和LUN。破折號充當通配符,意思是“重新掃描一切”
四、查看磁盤是否掃描出來
fdisk -l
對新磁盤進行格式化:
1、對新磁盤進行分區(根據實際需求)
fdisk /dev/sdb
fdisk命令參數介紹 p、打印分區表。 n、新建一個新分區。 d、刪除一個分區。 q、退出不保存。 w、把分區寫進分區表,保存並退出。
2、再查看磁盤個數與分區情況
3、通知內存磁盤分區變化
不通知內核,有可能無法格式化操作
partprobe /dev/sdb
4、格式化分區(根據系統和實際情況格式化成自己想要的文件系統)
5、創建掛載目錄
mkdir /test
6、掛載分區指定目錄,並創建開機自動掛載
1、掛載分區
mount /dev/sdb1 /test
2、創建開機自動掛載
- 可以通過磁盤分區名掛載
- vi /etc/fstab
1.可以通過磁盤分區名掛載
2. 也可以通過uuid進行掛載
查看磁盤的uuid
blkid
掛載
一、/etc/fstab文件的作用 磁盤被手動掛載之后都必須把掛載信息寫入/etc/fstab這個文件中,否則下次開機啟動時仍然需要重新掛載。 系統開機時會主動讀取/etc/fstab這個文件中的內容,根據文件里面的配置掛載磁盤。這樣我們只需要將磁盤的掛載信息寫入這個文件中我們就不需要每次開機啟動之后手動進行掛載了。 二、掛載的限制 在說明這個文件的作用之前我想先強調一下掛載的限制。 1、根目錄是必須掛載的,而且一定要先於其他mount point被掛載。因為mount是所有目錄的跟目錄,其他木有都是由根目錄 /衍生出來的。 2、掛載點必須是已經存在的目錄。 3、掛載點的指定可以任意,但必須遵守必要的系統目錄架構原則 4、所有掛載點在同一時間只能被掛載一次 5、所有分區在同一時間只能掛在一次 6、若進行卸載,必須將工作目錄退出掛載點(及其子目錄)之外。
使用設備名和label及uuid作為標識的不同
使用設備名稱(/dev/sda)來掛載分區時是被固定死的,一旦磁盤的插槽順序發生了變化,就會出現名稱不對應的問題。因為這個名稱是會改變的。
不過使用label掛載就不用擔心插槽順序方面的問題。不過要隨時注意你的Label name。至於UUID,每個分區被格式化以后都會有一個UUID作為唯一的標識號。使用uuid掛載的話就不用擔心會發生錯亂的問題了。
第二列:Mount point:設備的掛載點,就是你要掛載到哪個目錄下。
第三列:filesystem:磁盤文件系統的格式,包括ext2、ext3、ext4、reiserfs、nfs、vfat等
第四列:parameters:文件系統的參數
第五列:能否被dump備份命令作用:dump是一個用來作為備份的命令。通常這個參數的值為0或者1
第六列:是否檢驗扇區:開機的過程中,系統默認會以fsck檢驗我們系統是否為完整(clean)。
二、擴充根分區
根分區使用率超過預警值,經排查刪除了無用數據,但使用率依然居高不下,於是決定擴充根分區。
一、查看目前的使用情況
[root@localhost Desktop]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 3.4G 47G 7% / devtmpfs 902M 0 902M 0% /dev tmpfs 917M 144K 917M 1% /dev/shm tmpfs 917M 9.0M 908M 1% /run tmpfs 917M 0 917M 0% /sys/fs/cgroup /dev/mapper/centos-home 48G 33M 48G 1% /home /dev/sda1 497M 158M 340M 32% /boot tmpfs 184M 12K 184M 1% /run/user/0
/dev/mapper/centos-root 大小50G我們增大3G
二、添加新的磁盤,分區格式化
根據環境不同,自行添加新的磁盤
1、添加完后,查看磁盤情況
[root@localhost Desktop]# fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x0005efd6 Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 209715199 104344576 8e Linux LVM Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-home: 50.9 GB, 50944016384 bytes, 99500032 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xf0480a7c Device Boot Start End Blocks Id System
可以看到新添加的磁盤/dev/sdb
2、對磁盤進行分區
fdisk /dev/sdb fdisk的交互模式,依次輸入
n --創建新分區 p --創建主分區 <回車> --默認分區編號 <回車> --默認起始扇區位置。 <回車> --默認結束扇區位置。
t --設置分區類型
8e 類型為LVM w --寫入分區表
3、再查看磁盤情況
[root@localhost Desktop]# fdisk -l /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xf0480a7c Device Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 8e Linux LVM
三、擴充根分區:將新分區擴展/root
1、查看卷分組
[root@localhost Desktop]# vgdisplay -v ##找到centos Using volume group(s) on command line. --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 99.51 GiB PE Size 4.00 MiB Total PE 25474 Alloc PE / Size 25458 / 99.45 GiB Free PE / Size 16 / 64.00 MiB VG UUID eajt4v-Jdef-HZmX-U6AL-kOTp-lc1w-nHXcBe
2、為新增的分區創建物理卷
[root@localhost Desktop]# pvcreate /dev/sdb1 ##提示是否擦除xfs簽名,可以根據實際情況選擇 WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created
3、查看結果
[root@localhost Desktop]# pvdisplay /dev/sdb1
##可以看到新創建的20GiB大小的物理卷: "/dev/sdb1" is a new physical volume of "20.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID JSpfvR-zsge-XRVU-CRT2-ubec-LcmO-oZtxmD
4、擴展卷分組,"centos"是vgdisplay命令查到的卷分組名
[root@localhost Desktop]# vgextend centos /dev/sdb1 Volume group "centos" successfully extended
5、查看邏輯卷,並擴展邏輯卷
lvdisplay 可以看到/dev/centos/root目前的LV Size是50G。 [root@localhost Desktop]# lvextend -L +3G /dev/centos/root
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 53.00 GiB (13568 extents).
Logical volume root successfully resized. 注:+3G是我們要新增加的分區大小。
[root@localhost Desktop]# xfs_growfs /dev/centos/root meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=3276800 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=6400, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 13107200 to 13893632 將文件系統擴大,完成。 因為安裝CentOS用的xfs分區,所以使用命令xfs_growfs擴展文件系統大小。xfs_growfs 同步文件系統
tips:此處有區別:centos6.x 和centos7.x的區別
resize2fs /dev/mapper/cl00-root #centos6.x調整分區命令
xfs_growfs /dev/mapper/cl00-root #centos7.x調整分區命令
[root@localhost Desktop]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 53G 3.4G 50G 7% / devtmpfs devtmpfs 902M 0 902M 0% /dev tmpfs tmpfs 917M 144K 917M 1% /dev/shm tmpfs tmpfs 917M 9.0M 908M 1% /run tmpfs tmpfs 917M 0 917M 0% /sys/fs/cgroup /dev/mapper/centos-home xfs 48G 33M 48G 1% /home /dev/sda1 xfs 497M 158M 340M 32% /boot tmpfs tmpfs 184M 12K 184M 1% /run/user/0
/已經擴充到53GiB
8、創建PV,擴容VG,LV
pvcreate /dev/hda6 vgdisplay #查看當前已經存在的VG信息,以存在VG:VolGroup00為例 vgextend VolGroup00 /dev/hda6 #擴展VolGroup00 lvdisplay #查看已經存在的LV信息,以存在LV:LogVol01為例 lvextend –L 1G /dev/VolGroup00/LogVol01 #擴展LV resize2fs /dev/VolGroup00/LogVol01 #執行該重設大小,對於當前正在使用的LogVol01有效 df –h #查看掛載情況,已經擴容
1、擴充邏輯卷報錯 執行lvextend -L +20G /dev/centos/root,報錯 Insufficient free space: 5120 extents needed, but only 5119 available 2、解決如下 執行pvdisplay可以看到可用的PE數量是5119,而每個PE大小是4.00MiB,所以其實這個卷組實際的可用空間其實不是20G,而是19.99G。
/dev/mapper/VolGroup00-LogVol00 這行的意思是,你有一個VG (volume group卷組)叫作VolGroup00, 這個VolGroup00里面有一個LV(logical volume 邏輯卷)叫作LogVol00 其實這個/dev/mapper/VolGroup00-LogVol00 文件是一個連接文件,是連接到/dev/dm-0的,你可以用ll /dev/mapper/VolGroup00-LogVol0 查看,你就當VolGroup00-LogVol00是一個分區來對待就可以了. 在你的系統里,/dev/VolGroup00/LogVol00 和 /dev/mapper/VolGroup00-LogVol00 和/dev/dm-0 是一個東西,都當作一個分區來對待就好. 1.如果你想查看兩個硬盤在哪,你可以用pvdisplay來查看,兩個硬盤做為PV(physical volume 物理卷)的身份加進了VG里,所以你是找不到
硬盤的,因為它們已經加進了VG里,可以把VG當作一個資源池來對待,把所有的存儲空間加到池里,然后你想要多大的空間,就從池里划出來就可以了. 2.比如兩個1T的硬盤,加進了池里,池里的空間就是2T,你就可以建一個1T以上的空間出來,不會像以前那種,最大只能是1T(因為硬盤就是1T的)。
來自:
https://www.cnblogs.com/happy-king/p/9070496.html 磁盤空間不足,添加新的磁盤,擴充根分區
http://www.cnblogs.com/qiyebao/p/4484047.html Linux命令-自動掛載文件/etc/fstab功能詳解
https://blog.csdn.net/GX_1_11_real/article/details/82024550 Linux服務器添加新硬盤無法識別解決方法(無需重啟)