手把手教學linux上擴容和縮減swap分割槽。
一.swap簡單介紹
swap交換記憶體主要是指當實體記憶體不夠用時,系統會啟用硬碟的一部分空間來充當伺服器記憶體,而預設情況下swap記憶體會有一些設定標準,它與實體記憶體的大小也是有關係的:
Ram大小 Swap大小 啟用Swap後合計大小
256MB 256MB 512MB
512MB 512MB 1GB
1GB 1GB 2GB
3GB 2GB 5GB
4GB 2GB 6GB
6GB 2GB 8GB
8GB 3GB 11GB
12GB 3GB 15GB
16GB 4GB 20GB
32GB 6GB 38GB
64GB 8GB 72GB
128GB 11GB 139GB
官方官方建議在RAM是2到4.5G時,swap是RAM的2倍;如果RAM大於等於4G則swap等於RAM即可
當預先設定的Swap分割槽空間不足,這個時候需要增加其大小,今天總結兩種增減swap大小的方法。
- 通過swap分割槽檔案增加swap空間
- 通過LVM擴容縮減swap空間
話不多說,直接開始。實驗用centos7機器。
目標增減swap2G。
二.通過swap分割槽檔案增加減少swap空間
1.擴充套件
- 先檢視一下當前swap大小
[root@fei-7 ~]# free -h
total used free shared buff/cache available
Mem: 1.9G 164M 1.3G 7.6M 491M 1.7G
Swap: 2.0G 0B 2.0G
#當前swap2G
- 建立一個2G的檔案
[root@fei-7 mnt]# dd if=/dev/zero of=/mnt/swap bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 19.3321 s, 111 MB/s
[root@fei-7 mnt]# du -h /mnt/swap #檢視一下建立的檔案
2.0G /mnt/swap
- 將檔案格式化為swap
[root@fei-7 mt]# mkswap /mnt/swap
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=c44df16e-2eb3-4132-9363-b0d32324c6a8
- 掛載並檢視swap分割槽
[root@fei-7 mnt]# swapon /mnt/swap #將swap分割槽檔案
swapon: /mnt/swap: insecure permissions 0644, 0600 suggested.
[root@fei-7 mnt]# free -h
total used free shared buff/cache available
Mem: 1.9G 163M 17M 7.5M 1.8G 1.7G
Swap: 4.0G 0B 4.0G
#此時swap增加為2G
- 將分割槽資訊寫入/etc/fstab,如果不寫入檔案,則在下次啟動後恢復原樣。
[root@fei-7 mnt]# vim /etc/fstab
[root@fei-7 mnt]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Feb 15 17:41:54 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=0362beab-af6c-4573-8907-b3eb62e36a81 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sr0 /media iso9660 defaults 0 0
/mnt/swap swap swap defaults 0 0 #寫在了最後一行
- 完成之後重新啟動檢查,看是否依然是4G
- 重啟後檢查一下swap組成
[root@fei-7 ~]# swapon -s
Filename Type Size Used Priority
/mnt/swap file 2097148 0 -2
/dev/dm-1 partition 2097148 0 -3
#現在看來很成功
所以以上是通過swap分割槽檔案增加swap空間的具體操作步驟。
2.縮減(刪除)
- 解除安裝剛才掛載的swap檔案。
[root@fei-7 ~]# swapoff /mnt/swap
[root@fei-7 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 128M 1.5G 9.4M 203M 1.5G
Swap: 2.0G 0B 2.0G
#解除安裝後swap分割槽恢復2G
- 刪除/etc/fstab下新增的掛載資訊
[root@fei-7 ~]# vim /etc/fstab
[root@fei-7 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Feb 15 17:41:54 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=0362beab-af6c-4573-8907-b3eb62e36a81 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sr0 /media iso9660 defaults 0 0
- 最後將swap檔案刪除
[root@fei-7 ~# rm -rf /mnt/swap
通過swap分割槽檔案增加或者縮減swap空間這種方法較為簡單,建議使用這種方法。
三.通過LVM擴容縮減swap空間
檢視一下當前系統swap分割槽情況
[root@fei-7 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 138M 1.4G 9.4M 229M 1.4G
Swap: 2.0G 0B 2.0G
#確認是2G大。
1.擴容
如果對LVM還不熟悉,可以在此先了解一下:linux LVM邏輯卷相關命令及建立,修改過程
- 先檢視一下邏輯卷(lvm)和邏輯卷(vg)組詳細情況
[root@fei-7 ~]# lvdisplay /dev/centos/swap #swap檔案可以在/etc/fstab或lsblk命令看到
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap #當前邏輯卷名稱
VG Name centos #找到所屬卷組名:centos
LV UUID m4d0ur-Iz58-UAfd-tIPd-N5gM-Eqf8-NQvbvv
LV Write Access read/write
LV Creation host, time xiaoagiao, 2020-02-15 17:41:53 +0800
LV Status available
# open 2
LV Size 2.00 GiB #大小
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
[root@fei-7 ~]# vgdisplay centos
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 108.99 GiB
PE Size 4.00 MiB
Total PE 27902
Alloc PE / Size 27902 / 108.99 GiB
Free PE / Size 0 / 0 #可以看到centos這個邏輯卷組並沒有剩餘空間了,如果有剩餘空間可以直接新增到lv中。此時沒有剩餘則採取新增硬碟方式擴容。
VG UUID VWTn40-zXfH-77PH-riAc-HC1U-5lqQ-1juay8
- 此時新增一塊硬碟,並檢視。
[root@fei-7 ~]# fdisk -l |grep sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
/dev/sdb1 2048 188745727 94371840 83 Linux
Disk /dev/sdc: 5368 MB, 5368709120 bytes, 10485760 sectors #新新增的磁碟/dev/sdc
- 將這個硬碟空間建立為物理卷
[root@fei-7 ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
[root@fei-7 ~]# pvs #檢視一下當前物理卷
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 centos lvm2 a-- <90.00g 0
/dev/sdc lvm2 --- 5.00g 5.00g #這就是新建的
- 接下來擴充套件centos這個卷組
[root@fei-7 ~]# vgextend centos /dev/sdc
Volume group "centos" successfully extended
[root@fei-7 ~]# vgdisplay centos
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 3
Act PV 3
VG Size <113.99 GiB
PE Size 4.00 MiB
Total PE 29181
Alloc PE / Size 27902 / 108.99 GiB
Free PE / Size 1279 / <5.00 GiB #剛才剩餘0.現在剩餘5G
VG UUID VWTn40-zXfH-77PH-riAc-HC1U-5lqQ-1juay8
到這一步之前分為兩種情況:
- 如果在第一步檢視centos這個卷組時,發現有剩餘空間,則直接進行橫線下操作。
- 若沒有剩餘,和演示的一樣,則按照步驟依次進行。
接下來真正進行擴容,分為四步(解除安裝,擴充套件,格式化,掛載)
- 解除安裝swap分割槽
[root@fei-7 ~]# swapoff /dev/mapper/centos-swap
- 擴充套件swap邏輯卷
[root@fei-7 ~]# vgs #先看一下centos這個卷組為5G
VG #PV #LV #SN Attr VSize VFree
centos 3 2 0 wz--n- <113.99g <5.00g
[root@fei-7 ~]# lvextend -L +2G /dev/mapper/centos-swap #給swap這個邏輯卷新增2G
Size of logical volume centos/swap changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).
Logical volume centos/swap successfully resized.
[root@fei-7 ~]# vgs #現在剩餘3G
VG #PV #LV #SN Attr VSize VFree
centos 3 2 0 wz--n- <113.99g <3.00g
[root@fei-7 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 106.99g
swap centos -wi-a----- 4.00g #此時邏輯卷swap共4G
- 格式化新swap分割槽
[root@fei-7 ~]# mkswap /dev/mapper/centos-swap
mkswap: /dev/mapper/centos-swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=4be30881-944a-42c2-8d3e-d8fbd183b698
- 重新掛在swap分割槽
[root@fei-7 ~]# swapon /dev/mapper/centos-swap #掛載
[root@fei-7 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 130M 1.5G 9.4M 168M 1.5G
Swap: 4.0G 0B 4.0G
到此處,LVM擴容swap完成
2.縮減
其實就是縮減這個名為swap的邏輯卷
- 解除安裝swap分割槽
- 縮減邏輯卷
[root@fei-7 ~]# lvreduce -L 2G /dev/mapper/centos-swap
WARNING: Reducing active logical volume to 2.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos/swap? [y/n]: y
Size of logical volume centos/swap changed from 4.00 GiB (1024 extents) to 2.00 GiB (512 extents).
Logical volume centos/swap successfully resized.
[root@fei-7 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 106.99g
swap centos -wi-a----- 2.00g #此時已經變回2G
[root@fei-7 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb1 centos lvm2 a-- <90.00g 0
/dev/sdc centos lvm2 a-- <5.00g <5.00g #centos卷組變回5G
- 格式化swap分割槽
[root@fei-7 ~]# mkswap /dev/mapper/centos-swap
mkswap: /dev/mapper/centos-swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=e6c3f988-8125-4574-8242-e7f3efcff1f5
- 重新掛載
[root@fei-7 ~]# swapon /dev/mapper/centos-swap
[root@fei-7 ~]# free -h
total used free shared buff/cache available
Mem: 1.8G 128M 1.5G 9.4M 169M 1.5G
Swap: 2.0G 0B 2.0G #重新變回2G
– 以上是通過LVM擴容縮減swap空間全過程 –
相關文章
- Linux 分割槽擴容(根分割槽擴容,SWAP 分割槽擴容,掛載新分割槽為目錄)Linux
- centos7.9 擴容swap分割槽CentOS
- Linux 新增LVM分割槽及LVM分割槽擴容LinuxLVM
- 【Linux】分割槽向左擴容的方法Linux
- Linux Swap擴容Linux
- Linux系統如何進行分割槽?swap分割槽是什麼?Linux
- linux系統下分割槽邏輯卷擴容Linux
- 非 LVM 分割槽動態擴容LVM
- liunx磁碟分割槽擴容實操
- swap擴容
- linux — 擴容 /home 空間( xfs檔案系統分割槽擴容指定掛載點)Linux
- Linux下swap(交換分割槽)的增刪改Linux
- Linux擴容後,邏輯分割槽大小與檔案大小不符Linux
- 用檔案新增Swap分割槽
- 澤拓科技趙偉 KunlunBase 資料分割槽方案和彈性擴縮容技術詳解
- 『學了就忘』Linux檔案系統管理 — 62、手動分配swap分割槽Linux
- Linux 擴充套件磁碟分割槽(命令列操作)Linux套件命令列
- Linux 格式化擴充套件分割槽(Extended)Linux套件
- Linux分割槽方案、分割槽建議Linux
- Linux 分割槽和格式化Linux
- Linux 磁碟分割槽和掛載Linux
- Linux核心之磁碟和分割槽Linux
- hdfs叢集的擴容和縮容
- linux建立新分割槽擴充套件磁碟空間Linux套件
- 如何在 Linux 中擴充套件 XFS 根分割槽Linux套件
- 雲端計算:交換分割槽管理 Swap
- 9.2 Linux硬碟分割槽和掛載Linux硬碟
- linux新增新磁碟和建立分割槽Linux
- linux分割槽方案Linux
- linux硬碟分割槽Linux硬碟
- Ubunut擴充套件分割槽套件
- 教你如何進行 linux swap 交換記憶體擴容Linux記憶體
- 如何給VirtualBox虛擬機器的ubuntu LVM分割槽擴容虛擬機UbuntuLVM
- 擴容C盤後分割槽不見找回檔案的方案
- Linux 學習基礎入門之Linux分割槽Linux
- oracle分割槽表和分割槽表exchangeOracle
- linux交換分割槽Linux
- linux的分割槽方法Linux