Linux提供的邏輯盤卷管理(LVM,LogicalVolumeManager)機制完美的解決了在零停機前提下能夠自如對文件系統的大小進行調整,能夠方便實現文件系統跨越不一樣磁盤和分區。node
步驟:linux
修改分區類型爲8e(lvm)服務器
小知識:若是隻知道命令,不知道哪一個包安裝的,能夠用yum provides "/*/[命令名]" 搜索app
先安裝lvm包,運行命令yum install -y lvm2ide
pvcreate /dev/sdb1 建立物理卷 pvcreate /dev/sdb2 pvcreate /dev/sdb3 pvdisplay 列出當前物理卷 pvremove /dev/sdb3 刪除物理卷
將sdb1,2,3建立成物理卷ui
[root@glinux-01 ~]# pvcreate /dev/sdb2 WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 17408. Wipe it? [y/n]: y Wiping xfs_external_log signature on /dev/sdb2. WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 18432. Wipe it? [y/n]: y Wiping xfs_external_log signature on /dev/sdb2. Physical volume "/dev/sdb2" successfully created. [root@glinux-01 ~]# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created.
注意:若是建立不成功,多是缺失/dev/sdb1文件,用命令partprobe(從新加載分區列表)spa
查看當前物理卷pvdisplay或pvscode
[root@glinux-01 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- 1.00g 1.00g /dev/sdb2 lvm2 --- 1.00g 1.00g /dev/sdb3 lvm2 --- 1.00g 1.00g
vgcreate [卷組名] [包含的物理卷]orm
[root@glinux-01 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2 Volume group "vg1" successfully created
vgdisplay 查看卷組信息或vgsip
[root@glinux-01 ~]# vgdisplay --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1.99 GiB VG UUID pR2eXX-9wpb-Ayhk-P6RP-rCdS-rXcj-mKfXMa
例:lvcreate -L 100M -n lv1 vg1 (-L指定大小 -n 只能邏輯分區名稱 vg1從哪一個卷組分出)
[root@glinux-01 ~]# lvcreate -L 100M -n lv1 vg1 Logical volume "lv1" created.
mkfs.ext4 /dev/vg1/lv1
[root@glinux-01 ~]# mkfs.ext4 /dev/vg1/lv1 mke2fs 1.42.9 (28-Dec-2013) 文件系統標籤= OS type: Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user 第一個數據塊=1 Maximum filesystem blocks=33685504 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
掛載mount /dev/vg1/lv1 /mnt/
mount /dev/vg1/lv1 /mnt/ [root@glinux-01 ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/sda3 23G 1.2G 22G 6% / devtmpfs 357M 0 357M 0% /dev tmpfs 367M 0 367M 0% /dev/shm tmpfs 367M 5.2M 362M 2% /run tmpfs 367M 0 367M 0% /sys/fs/cgroup /dev/sda1 197M 97M 100M 50% /boot tmpfs 74M 0 74M 0% /run/user/0 /dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
先取消掛載umount /mnt
lvresize -L 200M /dev/vg1/lv1 從新設置邏輯卷大小
[root@glinux-01 ~]# lvresize -L 200M /dev/vg1/lv1 Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 200.00 MiB (50 extents). Logical volume vg1/lv1 successfully resized.
檢測磁盤錯誤(ext4執行)
[root@glinux-01 ~]# e2fsck -f /dev/vg1/lv1 e2fsck 1.42.9 (28-Dec-2013) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄鏈接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8898/102400 blocks
更新邏輯卷信息(ext4執行)
[root@glinux-01 ~]# resize2fs /dev/vg1/lv1 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/vg1/lv1 is now 204800 blocks long.
從新掛載
1. 格式化 mkfs.xfs /dev/vg1/lv1
[root@glinux-01 ~]# mkfs.xfs /dev/vg1/lv1 mkfs.xfs: /dev/vg1/lv1 appears to contain an existing filesystem (ext4). mkfs.xfs: Use the -f option to force overwrite. [root@glinux-01 ~]# mkfs.xfs -f /dev/vg1/lv1 meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=12800 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=51200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
2 掛載 mount /dev/vg1/lv1
3從新設置大小lvresize -L 300M /dev/vg1/lv1
4更新卷信息 xfs_growfs /dev/vg1/lv1
先umount
e2fsck -f /dev/vg1/lv1 檢查磁盤錯誤(ext4)
resize2fs /dev/vg1/lv1 100M 更新邏輯卷信息(ext4)
lvresize -L 100M /dev/vg1/lv1 從新設置卷大小
步驟:1fdisk /dev/sdb 新增邏輯分區/dev/sdb5(8e)
2pvcreate dev/sdb5 建立物理卷
3vgextend vg1 /dev/sdb5 將物理卷加入卷組vg1中
4lvresize -L 100M /dev/vg1/lv1 從新設置邏輯分區大小