如何在Linux中使用LVM創(chuàng)建和擴展交換分區(qū)?
我們使用 LVM 進行靈活的卷管理,為什么我們不能將 LVM 用于交換分區(qū)呢?
這可以讓用戶在需要時增加交換分區(qū)。如果你升級系統(tǒng)中的內(nèi)存,則需要添加更多交換空間。這有助于你管理運行需要大量內(nèi)存的應(yīng)用的系統(tǒng)。
可以通過三種方式創(chuàng)建交換分區(qū)
- 創(chuàng)建一個新的交換分區(qū)
- 創(chuàng)建一個新的交換文件
- 在現(xiàn)有邏輯卷(LVM)上擴展交換分區(qū)
建議創(chuàng)建專用交換分區(qū)而不是交換文件。
建議閱讀:
Linux 中推薦的交換大小是多少?
什么是交換空間
當(dāng)物理內(nèi)存 (RAM) 已滿時,將使用 Linux 中的交換空間。當(dāng)物理內(nèi)存已滿時,內(nèi)存中的非活動頁將移到交換空間。
這有助于系統(tǒng)連續(xù)運行應(yīng)用程序,但它不能當(dāng)做是更多內(nèi)存的替代品。
交換空間位于硬盤上,因此它不能像物理內(nèi)存那樣處理請求。
如何使用 LVM 創(chuàng)建交換分區(qū)
由于我們已經(jīng)知道如何創(chuàng)建邏輯卷,所以交換分區(qū)也是如此。只需按照以下過程。
創(chuàng)建你需要的邏輯卷。在我這里,我要創(chuàng)建 5GB
的交換分區(qū)。
$ sudo lvcreate -L 5G -n LogVol_swap1 vg00
Logical volume "LogVol_swap1" created.
格式化新的交換空間。
$ sudo mkswap /dev/vg00/LogVol_swap1
Setting up swapspace version 1, size = 5 GiB (5368705024 bytes)
no label, UUID=d278e9d6-4c37-4cb0-83e5-2745ca708582
將以下條目添加到 /etc/fstab
中。
# vi /etc/fstab
/dev/mapper/vg00-LogVol_swap1 swap swap defaults 0 0
啟用擴展邏輯卷。
$ sudo swapon -va
swapon: /swapfile: already active -- ignored
swapon: /dev/mapper/vg00-LogVol_swap1: found signature [pagesize=4096, signature=swap]
swapon: /dev/mapper/vg00-LogVol_swap1: pagesize=4096, swapsize=5368709120, devsize=5368709120
swapon /dev/mapper/vg00-LogVol_swap1
測試交換空間是否已正確添加。
$ cat /proc/swaps
Filename Type Size Used Priority
/swapfile file 1459804 526336 -1
/dev/dm-0 partition 5242876 0 -2
$ free -g
total used free shared buff/cache available
Mem: 1 1 0 0 0 0
Swap: 6 0 6
如何使用 LVM 擴展交換分區(qū)
只需按照以下過程來擴展 LVM 交換邏輯卷。
禁用相關(guān)邏輯卷的交換。
$ sudo swapoff -v /dev/vg00/LogVol_swap1
swapoff /dev/vg00/LogVol_swap1
調(diào)整邏輯卷的大小。我將把交換空間從 5GB
增加到 11GB
。
$ sudo lvresize /dev/vg00/LogVol_swap1 -L +6G
Size of logical volume vg00/LogVol_swap1 changed from 5.00 GiB (1280 extents) to 11.00 GiB (2816 extents).
Logical volume vg00/LogVol_swap1 successfully resized.
格式化新的交換空間。
$ sudo mkswap /dev/vg00/LogVol_swap1
mkswap: /dev/vg00/LogVol_swap1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 11 GiB (11811155968 bytes)
no label, UUID=2e3b2ee0-ad0b-402c-bd12-5a9431b73623
啟用擴展邏輯卷。
$ sudo swapon -va
swapon: /swapfile: already active -- ignored
swapon: /dev/mapper/vg00-LogVol_swap1: found signature [pagesize=4096, signature=swap]
swapon: /dev/mapper/vg00-LogVol_swap1: pagesize=4096, swapsize=11811160064, devsize=11811160064
swapon /dev/mapper/vg00-LogVol_swap1
測試邏輯卷是否已正確擴展。
$ free -g
total used free shared buff/cache available
Mem: 1 1 0 0 0 0
Swap: 12 0 12
$ cat /proc/swaps
Filename Type Size Used Priority
/swapfile file 1459804 237024 -1
/dev/dm-0 partition 11534332 0 -2