Linux(Redhat6.9) 磁盤格式化/擴(kuò)容

預(yù)備知識(shí)

邏輯卷管理LVM是一個(gè)硬盤系統(tǒng)工具。無(wú)論在Linux或者其他類似的系統(tǒng)棘脐,都是非常的好用。傳統(tǒng)分區(qū)使用固定大小分區(qū),重新調(diào)整大小十分麻煩秸滴。但是戒幔,LVM可以創(chuàng)建和管理“邏輯”卷幌陕,而不是直接使用物理硬盤汹买。可以讓管理員彈性的管理邏輯卷的擴(kuò)大縮小静暂,操作簡(jiǎn)單济丘,而不損壞已存儲(chǔ)的數(shù)據(jù)∏⒅可以隨意將新的硬盤添加到LVM摹迷,以直接擴(kuò)展已經(jīng)存在的邏輯卷。LVM并不需要重啟就可以讓內(nèi)核知道分區(qū)的存在郊供。


lvm

圖中頂部峡碉,首先是實(shí)際的物理磁盤及其劃分的分區(qū)和其上的物理卷(PV)。一個(gè)或多個(gè)物理卷可以用來(lái)創(chuàng)建卷組(VG)驮审。然后基于卷組可以創(chuàng)建邏輯卷(LV)鲫寄。只要在卷組中有可用空間,就可以隨心所欲的創(chuàng)建邏輯卷疯淫。文件系統(tǒng)就是在邏輯卷上創(chuàng)建的地来,然后可以在操作系統(tǒng)掛載和訪問(wèn)。


pv/vg/lv

磁盤的擴(kuò)容主要依據(jù)就是lvm

磁盤信息

  • lsblkdf -hT
[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 17.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk 
[root@micocube ~]# df -hT
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_micocube-lv_root
                     ext4    18G  1.9G   15G  12% /
tmpfs                tmpfs  939M     0  939M   0% /dev/shm
/dev/sda1            ext4   477M   41M  412M   9% /boot
  • 可以看到sdb的類型是disk熙掺,沒(méi)有分區(qū)未斑,也沒(méi)有掛載點(diǎn),就是個(gè)空白盤

將空白磁盤直接格式化适掰,掛載到/data

  • 如何將其掛上去用呢颂碧?最簡(jiǎn)單的方法,就是將整個(gè)磁盤格式化类浪,不分區(qū)载城,直接使用,但是用這種方法之后磁盤不再支持?jǐn)U容
[root@micocube ~]# mkfs -t ext4 /dev/sdb 
mke2fs 1.41.12 (17-May-2010)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 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

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
  • 臨時(shí)掛載
[root@micocube ~]# mkdir /data
[root@micocube ~]# mount /dev/sdb /data/
[root@micocube ~]# df -hT
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_micocube-lv_root
                     ext4    18G  1.9G   15G  12% /
tmpfs                tmpfs  939M     0  939M   0% /dev/shm
/dev/sda1            ext4   477M   41M  412M   9% /boot
/dev/sdb             ext4   9.8G   23M  9.2G   1% /data
  • 永久掛載
[root@micocube ~]# vi /etc/fstab 


#
# /etc/fstab
# Created by anaconda on Sun Apr 28 05:50:32 2019
#
# 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/vg_micocube-lv_root /                       ext4    defaults        1 1
UUID=57ad23fa-8c2f-42f8-91c1-01e5bcf4a058 /boot                   ext4    defaults        1 2
/dev/mapper/vg_micocube-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sdb                /data                   ext4    defaults        0 0

# reboot 
[root@micocube ~]# reboot

[root@micocube ~]# df -hT
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_micocube-lv_root
                     ext4    18G  1.9G   15G  12% /
tmpfs                tmpfs  939M     0  939M   0% /dev/shm
/dev/sda1            ext4   477M   41M  412M   9% /boot
/dev/sdb             ext4   9.8G   23M  9.2G   1% /data

## 可以看到sdb已經(jīng)掛載上去了
[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 17.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk 

如果想給/(根)掛載點(diǎn)擴(kuò)容费就,咋辦诉瓦?

[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 17.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk /data

可以看到/根掛載點(diǎn)的類型是lvm,這說(shuō)明他可以動(dòng)態(tài)擴(kuò)容力细,為了試驗(yàn)睬澡,我加了一塊15G的硬盤:

[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 17.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk /data
sdc                              8:32   0   15G  0 disk 
  • 接下來(lái)我會(huì)把sdc擴(kuò)容到dev/vg_micocube/lv_root 即/節(jié)點(diǎn)
  • 給sdc分區(qū),為了方便眠蚂,這里只分一個(gè)區(qū),注意代碼8e煞聪,即Changed system type of partition 1 to 8e (Linux LVM),分區(qū)的系統(tǒng)類型修改為lvm逝慧,
[root@micocube ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x66a87408.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1958, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1958, default 1958): 
Using default value 1958

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdc: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x66a87408

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1958    15727603+  8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
  • 接著創(chuàng)建pv昔脯,擴(kuò)展vg,擴(kuò)展lv笛臣,resize2fs
[root@micocube ~]# pvcreate /dev/sdc1 
  Physical volume "/dev/sdc1" successfully created
## 查看所有vg
[root@micocube ~]# vgs
  VG          #PV #LV #SN Attr   VSize  VFree
  vg_micocube   1   2   0 wz--n- 19.51g    0 
## 掃描vg
[root@micocube ~]# vgscan 
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_micocube" using metadata type lvm2
[root@micocube ~]# vgextend vg_micocube /dev/sdc1 
[root@micocube ~]# lvextend -L +15G /dev/mapper/vg_micocube-lv_root 
  Insufficient free space: 3840 extents needed, but only 3839 available
[root@micocube ~]# lvextend -L +14G /dev/mapper/vg_micocube-lv_root 
  Size of logical volume vg_micocube/lv_root changed from 17.51 GiB (4482 extents) to 31.51 GiB (8066 extents).
  Logical volume lv_root successfully resized.
  [root@micocube ~]# df -hlT
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_micocube-lv_root
                     ext4    18G  1.9G   15G  12% /
tmpfs                tmpfs  939M     0  939M   0% /dev/shm
/dev/sda1            ext4   477M   41M  412M   9% /boot
/dev/sdb             ext4   9.8G   23M  9.2G   1% /data
[root@micocube ~]# resize2fs -f /dev/mapper/vg_micocube-lv_root 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg_micocube-lv_root is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/vg_micocube-lv_root to 8259584 (4k) blocks.
The filesystem on /dev/mapper/vg_micocube-lv_root is now 8259584 blocks long.
[root@micocube ~]# df -hlT
Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/vg_micocube-lv_root
                     ext4    31G  1.9G   28G   7% /
tmpfs                tmpfs  939M     0  939M   0% /dev/shm
/dev/sda1            ext4   477M   41M  412M   9% /boot
/dev/sdb             ext4   9.8G   23M  9.2G   1% /data

### 可以看到已經(jīng)擴(kuò)容成功了
[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk /data
sdc                              8:32   0   15G  0 disk 
└─sdc1                           8:33   0   15G  0 part 
  └─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /

如果想給/data節(jié)點(diǎn)擴(kuò)容呢云稚?

emmm,我又重新添加了一塊磁盤sdd:

[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk /data
sdc                              8:32   0   15G  0 disk 
└─sdc1                           8:33   0   15G  0 part 
  └─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
sdd                              8:48   0   20G  0 disk 
  • 先卸載sdb,umount /dev/sdb或者umount /data
## 將之前寫入分區(qū)表的 /dev/sdb                /data                   ext4    defaults        0 0 這一行刪除
[root@micocube ~]# vi /etc/fstab 
[root@micocube ~]# umount /dev/sdb
umount: /data: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@micocube ~]# fuser -m -v /dev/sdb
                     USER        PID ACCESS COMMAND
/data/:              root       1895 F.... bash
### 這一步可能連接會(huì)斷沈堡,畢竟你用到了/data 重連就好了
  • 因?yàn)闆](méi)有分區(qū)静陈,不是lvm類型,肯定是擴(kuò)容不了的诞丽,只能給磁盤重新分區(qū)
[root@micocube ~]# fdisk /dev/sdb 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xe7603f99.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
### 我想直接改變類型鲸拥,行不通,只能重新創(chuàng)建分區(qū)
Command (m for help): t
No partition is defined yet!

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
Using default value 1305

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe7603f99

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
  • 在進(jìn)行下一步之前率拒,我還想再?gòu)?qiáng)調(diào)一下pv/vg/lv的關(guān)系
    一個(gè)硬盤分區(qū)組成一個(gè)pv(物理卷)
    一個(gè)或者多個(gè)pv組成一個(gè)vg(卷組)
    一個(gè)vg可以劃分出多個(gè)lv(邏輯卷)
  • 創(chuàng)建pv
## 用分區(qū)/dev/sdb1創(chuàng)建一個(gè)pv
[root@micocube ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
## 這一階段并沒(méi)有什么變化
[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk 
└─sdb1                           8:17   0   10G  0 part 
sdc                              8:32   0   15G  0 disk 
└─sdc1                           8:33   0   15G  0 part 
  └─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
sdd                              8:48   0   20G  0 disk 
  • 如果sdb1找不到可以試著重讀分區(qū)表
## 重讀分區(qū)表
[root@micocube ~]# partprobe 
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sdc (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
  • 創(chuàng)建vg
## 用pv(/dev/sdb1)創(chuàng)建一個(gè)vg
[root@micocube ~]# vgcreate vg_data /dev/sdb1 
  Volume group "vg_data" successfully created
  • 查看所有vg
## 查看創(chuàng)建的vg
[root@micocube ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg_data
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               9.99 GiB
  PE Size               4.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / 9.99 GiB
  VG UUID               iyB24d-X5KM-mhKR-Lxw1-kL9i-VALO-ez4EnG
   
  --- Volume group ---
  VG Name               vg_micocube
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizableF
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               34.50 GiB
  PE Size               4.00 MiB
  Total PE              8833
  Alloc PE / Size       8578 / 33.51 GiB
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               KBuu3K-sZ9j-NdYo-RaK3-ajJs-UAQm-3NJK53
  • 創(chuàng)建lv
## -L 后面是分給lv的大小崩泡,-n 新建名字為vg_data的lv,所屬卷組(vg)為vg_data
[root@micocube ~]# lvcreate -L 9.99G -n vg_data vg_data
  Rounding up size to full physical extent 9.99 GiB
  Logical volume "vg_data" created.
  • 格式化lv
## dev后邊第一個(gè)是vg 第二個(gè)是lv
[root@micocube ~]# mkfs.ext4 /dev/vg_data/vg_data 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2619392 blocks
130969 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 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

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
  • 永久掛載
[root@micocube ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Apr 28 05:50:32 2019
#
# 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/vg_micocube-lv_root /                       ext4    defaults        1 1
UUID=57ad23fa-8c2f-42f8-91c1-01e5bcf4a058 /boot                   ext4    defaults        1 2
/dev/mapper/vg_micocube-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/vg_data/vg_data                    /data                   ext4    defaults        0 0
  • 重新掛載
### 重新掛載,使/etc/fstab生效
[root@micocube ~]# mount -a
  • 為了測(cè)試擴(kuò)容后數(shù)據(jù)是否丟失
#### 按慣例先寫一些文件猬膨,看擴(kuò)容后是否還存在
[root@micocube ~]# echo 111111111111 >/data/a.txt
[root@micocube ~]# echo 222222222222 >/data/b.txt
[root@micocube ~]# echo 333333333333 >/data/c.txt
[root@micocube ~]# ls /data/
a.txt  b.txt  c.txt  lost+found
[root@micocube ~]# cat /data/*.txt
111111111111
222222222222
333333333333
  • 給sdd分區(qū)
### sdd分區(qū)
[root@micocube ~]# fdisk /dev/sdd 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x7a10ae95.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 
Using default value 2610

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdd: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7a10ae95

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        2610    20964793+  8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
  • 創(chuàng)建pv
### 創(chuàng)建pv
[root@micocube ~]# pvcreate /dev/sdd1 
  Physical volume "/dev/sdd1" successfully created
[root@micocube ~]# vgs
  VG          #PV #LV #SN Attr   VSize  VFree   
  vg_data       1   1   0 wz--n-  9.99g       0 
  vg_micocube   2   2   0 wz--n- 34.50g 1020.00m
  
[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk 
└─sdb1                           8:17   0   10G  0 part 
  └─vg_data-vg_data (dm-2)     253:2    0   10G  0 lvm  /data
sdc                              8:32   0   15G  0 disk 
└─sdc1                           8:33   0   15G  0 part 
  └─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
sdd                              8:48   0   20G  0 disk 
└─sdd1                           8:49   0   20G  0 part 
  • 將創(chuàng)建的pv擴(kuò)展到vg_data卷組中
## 將創(chuàng)建的pv擴(kuò)展到vg_data卷組中
[root@micocube ~]# vgextend vg_data /dev/sdd1 
  Volume group "vg_data" successfully extended
  • 擴(kuò)展lv
## 擴(kuò)展lv
[root@micocube ~]# lvextend -L +20G /dev/vg_data/vg_data 
  Insufficient free space: 5120 extents needed, but only 5118 available
[root@micocube ~]# lvextend -L +19.9G /dev/vg_data/vg_data
  Rounding size to boundary between physical extents: 19.90 GiB.
  Size of logical volume vg_data/vg_data changed from 9.99 GiB (2558 extents) to 29.89 GiB (7653 extents).
  Logical volume vg_data successfully resized.
  • resize2fs 使擴(kuò)展生效
## 寫入擴(kuò)展
[root@micocube ~]# resize2fs -f /dev/vg_data/vg_data 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_data/vg_data is mounted on /data; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_data/vg_data to 7836672 (4k) blocks.

The filesystem on /dev/vg_data/vg_data is now 7836672 blocks long.
### 可以看到sdb和sdd已經(jīng)合并了
[root@micocube ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 55.3M  0 rom  
sda                              8:0    0   20G  0 disk 
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 19.5G  0 part 
  ├─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
  └─vg_micocube-lv_swap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
sdb                              8:16   0   10G  0 disk 
└─sdb1                           8:17   0   10G  0 part 
  └─vg_data-vg_data (dm-2)     253:2    0 29.9G  0 lvm  /data
sdc                              8:32   0   15G  0 disk 
└─sdc1                           8:33   0   15G  0 part 
  └─vg_micocube-lv_root (dm-0) 253:0    0 31.5G  0 lvm  /
sdd                              8:48   0   20G  0 disk 
└─sdd1                           8:49   0   20G  0 part 
  └─vg_data-vg_data (dm-2)     253:2    0 29.9G  0 lvm  /data
  • 檢查文件是否丟失
### 檢查文件是否丟失
[root@micocube ~]# ls /data/
a.txt  b.txt  c.txt  lost+found
[root@micocube ~]# cat /data/*.txt
111111111111
222222222222
333333333333
### 未丟失

一次給oracle數(shù)據(jù)庫(kù)盤擴(kuò)容的經(jīng)歷

  • 接手的時(shí)候角撞,oracle數(shù)據(jù)庫(kù)文件在一個(gè)磁盤(/dev/vdb)的vdb7分區(qū)里,即類型為part勃痴,掛載點(diǎn)為/database/db1谒所,也就是說(shuō),沒(méi)有建lvm(邏輯卷管理)沛申,直接格式化分區(qū),數(shù)據(jù)庫(kù)文件全在里邊(dbf),150G劣领,已經(jīng)用了差不多99%,另外加了一塊600G的空白磁盤(/dev/vdc)很明顯铁材,是不能直接擴(kuò)容的尖淘,因?yàn)槭情_(kāi)發(fā)環(huán)境奕锌,那就有的搞了,隨便停機(jī)多久都沒(méi)問(wèn)題啊
  • 思路
    • 將vdc分區(qū)(/dev/sdc1)村生,分區(qū)系統(tǒng)類型為lvm惊暴,創(chuàng)建pv/vg(vg_data)/lv(vg_data_lv),掛載到/db/temp(之前不存在)文件夾
    • 將/database/db1/下的所有文件拷貝到/db/temp,cp -R /database/db1/* /db/temp/
    • vd7 已經(jīng)是part類型了,那就直接創(chuàng)建pv,之后vgextend vg_data /dev/vdb7,擴(kuò)展/dev/vdb7到vg_data卷組趁桃,lvextend -L +150G /dev/vg_data/vg_data_lv辽话,將原本的150G分配給/dev/vg_data/vg_data_lv
    • resize2fs -f /dev/vg_data/vg_data_lv
    • 擴(kuò)容成功之后將/dev/vg_data/vg_data_lv永久掛載到/database/db1
  • 意外:

總結(jié)

  • 使用空白磁盤的時(shí)候不要直接格式化整個(gè)磁盤,最少給磁盤分個(gè)區(qū)屹逛,分區(qū)系統(tǒng)類型設(shè)置為lvm(8e),再創(chuàng)建pv/vg/lv础废,要不然以后擴(kuò)容麻煩
  • lvextend命令最好再加上-r 參數(shù)
    lvextend -r -l +100%FREE /dev/mapper/VolGroup-lv_home
    如果不加 -r 參數(shù),需要手動(dòng)使用 resize2fs /dev/mapper/VolGroup-lv_home才能生效罕模。

lvm 的常用操作

lv/pv/vg 查看顯示 創(chuàng)建 刪除 擴(kuò)容 激活 掃描查找
LV lvdisplay lvcreate lvremove lvextend lvchange lvscan
PV pvdisplay pvcreate pvremove pvchange pvscan
VG vgdisplay vgcreate vgremove vgextend vgchange vgscan

參考鏈接

RedHat/CentOS根目錄擴(kuò)容
linux分區(qū)滿了评腺,如何進(jìn)行擴(kuò)容
【linux】新添加一塊硬盤制作LVM卷并進(jìn)行分區(qū)掛載
故障處理:磁盤擴(kuò)容出錯(cuò):e2fsck: Bad magic number in super-block while trying to open /dev/vdb1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市淑掌,隨后出現(xiàn)的幾起案子蒿讥,更是在濱河造成了極大的恐慌,老刑警劉巖抛腕,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芋绸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡担敌,警方通過(guò)查閱死者的電腦和手機(jī)摔敛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)全封,“玉大人马昙,你說(shuō)我怎么就攤上這事∩层玻” “怎么了行楞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)土匀。 經(jīng)常有香客問(wèn)我子房,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任证杭,我火速辦了婚禮田度,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘解愤。我一直安慰自己每币,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布琢歇。 她就那樣靜靜地躺著,像睡著了一般梦鉴。 火紅的嫁衣襯著肌膚如雪李茫。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天肥橙,我揣著相機(jī)與錄音魄宏,去河邊找鬼。 笑死存筏,一個(gè)胖子當(dāng)著我的面吹牛宠互,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椭坚,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼予跌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了善茎?” 一聲冷哼從身側(cè)響起券册,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垂涯,沒(méi)想到半個(gè)月后烁焙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耕赘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年骄蝇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片操骡。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡九火,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出当娱,到底是詐尸還是另有隱情吃既,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布跨细,位于F島的核電站鹦倚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冀惭。R本人自食惡果不足惜震叙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一掀鹅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧媒楼,春花似錦乐尊、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至夺颤,卻和暖如春痢缎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背世澜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工独旷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寥裂。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓嵌洼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親封恰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子麻养,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容