Linux 下使用 LVM 快速合併磁碟進行擴容操作
前言
這兩天給公司搭建素材管理系統,根據公司現有業務量,還不需要使用到非常專業的伺服器,就使用一臺普通機器來做素材管理,平時也作為公司內部開發部門的測試伺服器,系統採用CentOS 7,採購硬碟的時候採購了2塊2T的機械盤作為儲存盤,根據業務劃分,開發部門並不需要2T這麼大的空間,而素材管理2T又有些不夠,所以這裡就打算使用LVM將兩塊資料盤進行合併,之後劃分三分之一給開發部門,剩下的給素材管理做儲存。
配置
還是說一說現在的機器配置吧
主機板使用的是 七彩虹iH110-HD Pro V20 mini-itx (17x17)
記憶體使用 威剛8G DDR4 2400
系統盤使用的使用 聯想 SL700 NGFF MSATA 250G 插主機板上的M.2介面
資料盤 希捷 酷魚2T 硬碟2塊
CPU使用 G4560
機箱使用Tt Core V1
電源 tt Smart 500W
這裡選擇小機箱是方便放進機櫃裡面,裝好之後的圖
操作
一切準備就緒之後就開始進行磁碟的合併了,LVM的使用非常簡單,這裡根據我司的業務需要,需要對兩塊磁碟進行合併,然後再進行劃分,我們按照步驟一步步操作,只要按照順序來就行了。
首先切換到root賬戶下面,我這裡在根目錄建立兩個資料夾方便後面進行掛載,目錄名稱為 Development 和 MediaFiles
[root@localhost /]# mkdir Development MediaFiles [root@localhost /]# ll 總用量 20 lrwxrwxrwx.1 root root7 Nov 26 17:38 bin -> usr/bin dr-xr-xr-x.5 root root 4096 Nov 26 18:00 boot drwxr-xr-x.20 root root 3280 Nov 27 11:59 dev drwxr-xr-x.2 root root6 Nov 27 14:35 Development drwxr-xr-x.83 root root 8192 Nov 26 19:14 etc drwxr-xr-x.2 root root6 Apr 112018 home lrwxrwxrwx.1 root root7 Nov 26 17:38 lib -> usr/lib lrwxrwxrwx.1 root root9 Nov 26 17:38 lib64 -> usr/lib64 drwxr-xr-x.2 root root6 Apr 112018 media drwxr-xr-x.2 root root6 Nov 27 14:35 MediaFiles drwxr-xr-x.2 root root6 Apr 112018 mnt drwxr-xr-x.3 root root16 Nov 26 17:39 opt dr-xr-xr-x. 147 root root0 Nov 26 19:01 proc dr-xr-x---.4 root root180 Nov 26 19:04 root drwxr-xr-x.27 root root860 Nov 27 10:55 run lrwxrwxrwx.1 root root8 Nov 26 17:38 sbin -> usr/sbin drwxr-xr-x.2 root root6 Apr 112018 srv dr-xr-xr-x.13 root root0 Nov 26 19:01 sys drwxrwxrwt.10 root root 4096 Nov 27 14:35 tmp drwxr-xr-x.13 root root155 Nov 26 17:38 usr drwxr-xr-x.20 root root282 Nov 26 18:00 var [root@localhost /]#
執行fdisk -l 檢視磁碟資訊
[root@localhost /]# fdisk -l 磁碟 /dev/sda:2000.4 GB, 2000398934016 位元組,3907029168 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 位元組 / 4096 位元組 I/O 大小(最小/最佳):4096 位元組 / 4096 位元組 磁碟 /dev/sdb:2000.4 GB, 2000398934016 位元組,3907029168 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 位元組 / 4096 位元組 I/O 大小(最小/最佳):4096 位元組 / 4096 位元組 磁碟 /dev/sdc:240.1 GB, 240057409536 位元組,468862128 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 位元組 / 512 位元組 I/O 大小(最小/最佳):512 位元組 / 512 位元組 磁碟標籤型別:dos 磁碟識別符號:0x0009fc44 裝置 BootStartEndBlocksIdSystem /dev/sdc1*20482099199104857683Linux /dev/sdc220992004688609272333808648eLinux LVM 磁碟 /dev/mapper/centos-root:53.7 GB, 53687091200 位元組,104857600 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 位元組 / 512 位元組 I/O 大小(最小/最佳):512 位元組 / 512 位元組 磁碟 /dev/mapper/centos-swap:8321 MB, 8321499136 位元組,16252928 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 位元組 / 512 位元組 I/O 大小(最小/最佳):512 位元組 / 512 位元組 磁碟 /dev/mapper/centos-home:177.0 GB, 176966074368 位元組,345636864 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 位元組 / 512 位元組 I/O 大小(最小/最佳):512 位元組 / 512 位元組 [root@localhost /]#
我這裡的資料盤是 /dev/sda 和 /dev/sdb, 也就是即將合併的兩個磁碟,使用pvcreate命令建立物理卷,pvscan命令檢視建立之後的列表資訊
[root@localhost /]# pvcreate /dev/sda Physical volume "/dev/sda" successfully created. [root@localhost /]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [root@localhost /]# pvscan PV /dev/sdc2VG centoslvm2 [<222.57 GiB / 4.00 MiB free] PV /dev/sdblvm2 [<1.82 TiB] PV /dev/sdalvm2 [<1.82 TiB] Total: 3 [<3.86 TiB] / in use: 1 [<222.57 GiB] / in no VG: 2 [<3.64 TiB] [root@localhost /]#
可以看到建立的物理卷實際大小為1.8T,並不是2.0T,其中 /dev/sdc2是安裝系統的時候自行選擇的lvm模式,這個不用管,如果想對系統盤進行擴容也可以使用類似方法。
接著建立卷組,如果不知道什麼叫卷組,可以去找找LVM的資料,介紹的很詳細。建立組的命令是vgcreate,我這裡給卷組命名為 MYLVM,使用/dev/sda 建立卷組(格式 vgcreate [自定義LVM名稱] [裝置]),然後使用vgextend 命令把 /dev/sdb擴充套件上去(格式 vgextend [自定義vg名稱] [裝置])
[root@localhost /]# vgcreate MYLVM /dev/sda Volume group "MYLVM" successfully created [root@localhost /]# vgextend MYLVM /dev/sdb Volume group "MYLVM" successfully extended [root@localhost /]#
這個使用可以用vgscan檢視建立的卷組資訊
[root@localhost /]# vgscan Reading volume groups from cache. Found volume group "MYLVM" using metadata type lvm2 Found volume group "centos" using metadata type lvm2 [root@localhost /]#
接下來建立邏輯卷,使用 lvcreate 命令,可以理解為分割槽,根據業務需要,我這裡把卷組分為兩個區,一個是給開發部門,一個給設計部門做素材儲存,命令的使用方法是 lvcreate -L[自定義分割槽大小] -n[自定義分割槽名稱] [vg名稱]
[root@localhost /]# lvcreate -L800G -n DEV_DATA MYLVM Wiping ext4 signature on /dev/MYLVM/DEV_DATA. Logical volume "DEV_DATA" created. [root@localhost /]#
這裡首先建立了一個800G的分割槽出來,這個時候我們不要著急建立另外一個分割槽,使用 pvscan 命令先檢視一下剩下的空間還有多少,以便充分利用空間
[root@localhost /]# pvscan PV /dev/sdaVG MYLVMlvm2 [<1.82 TiB / <1.04 TiB free] PV /dev/sdbVG MYLVMlvm2 [<1.82 TiB / <1.82 TiB free] PV /dev/sdc2VG centoslvm2 [<222.57 GiB / 4.00 MiB free] Total: 3 [<3.86 TiB] / in use: 3 [<3.86 TiB] / in no VG: 0 [0] [root@localhost /]#
可以看到兩塊磁碟剩餘空間總和為2.86T,但是實際上空間並沒有2.86T那麼大,如果萬一建立錯了,可以使用 lvremove 進行刪除操作
[root@localhost /]# lvremove /dev/MYLVM/MEDIA_DATA Do you really want to remove active logical volume MYLVM/MEDIA_DATA? [y/n]: y Logical volume "MEDIA_DATA" successfully removed [root@localhost /]#
建立分割槽會佔用一些空間,所以建立2.85T空間差不多,如果實在需要精確可以換算成G
[root@localhost /]# lvcreate -L2.85T -n MEDIA_DATA MYLVM Rounding up size to full physical extent 2.85 TiB Logical volume "MEDIA_DATA" created. [root@localhost /]# pvscan PV /dev/sdaVG MYLVMlvm2 [<1.82 TiB / <7.63 GiB free] PV /dev/sdbVG MYLVMlvm2 [<1.82 TiB / 0free] PV /dev/sdc2VG centoslvm2 [<222.57 GiB / 4.00 MiB free] Total: 3 [<3.86 TiB] / in use: 3 [<3.86 TiB] / in no VG: 0 [0] [root@localhost /]#
建立完後使用lvscan檢視一下分割槽資訊
[root@localhost /]# lvscan ACTIVE'/dev/MYLVM/DEV_DATA' [800.00 GiB] inherit ACTIVE'/dev/MYLVM/MEDIA_DATA' [2.85 TiB] inherit ACTIVE'/dev/centos/swap' [7.75 GiB] inherit ACTIVE'/dev/centos/home' [164.81 GiB] inherit ACTIVE'/dev/centos/root' [50.00 GiB] inherit [root@localhost /]#
然後需要對分割槽進行格式化,我這裡使用ext4格式
[root@localhost /]# mkfs.ext4 /dev/MYLVM/DEV_DATA mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: 完成 檔案系統標籤= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 52428800 inodes, 209715200 blocks 10485760 blocks (5.00%) reserved for the super user 第一個資料塊=0 Maximum filesystem blocks=2357198848 6400 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost /]# mkfs.ext4 /dev/MYLVM/MEDIA_DATA mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: 完成 檔案系統標籤= OS type: Linux 塊大小=4096 (log=2) 分塊大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 191266816 inodes, 765041664 blocks 38252083 blocks (5.00%) reserved for the super user 第一個資料塊=0 Maximum filesystem blocks=2912944128 23348 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [root@localhost /]#
這個時候就可以進行掛載了
[root@localhost /]# mount /dev/MYLVM/DEV_DATA /Development/ [root@localhost /]# mount /dev/MYLVM/MEDIA_DATA /MediaFiles/
使用 df -lh 命令可以檢視詳細資訊
[root@localhost /]# df -lh 檔案系統容量已用可用 已用% 掛載點 /dev/mapper/centos-root50G1.3G49G3% / devtmpfs3.8G03.8G0% /dev tmpfs3.8G03.8G0% /dev/shm tmpfs3.8G9.1M3.8G1% /run tmpfs3.8G03.8G0% /sys/fs/cgroup /dev/sdc11014M146M869M15% /boot /dev/mapper/centos-home165G33M165G1% /home tmpfs771M0771M0% /run/user/0 /dev/mapper/MYLVM-DEV_DATA788G73M748G1% /Development /dev/mapper/MYLVM-MEDIA_DATA2.9T89M2.7T1% /MediaFiles [root@localhost /]#
可以看到分割槽已經掛載成功,如果需要刪除,只需要倒敘執行對應的刪除操作就可以了,順序如下
umount (解除安裝)
lvremove (刪除邏輯卷)
vgremove (刪除卷組)
pvremove (刪除物理卷)
最後
LVM實際上有很多實用的命令,比如修改調整卷組和邏輯盤的容量,重新命名等操作都比較簡單。
本文連結:https://www.92ez.com/?action=show&id=23475
!!! 轉載請先聯絡[email protected]授權並在顯著位置註明作者和原文連結 !!!小黑屋
提示:技術文章有一定的時效性,請先確認是否適用你當前的系統環境。