我的linux学习之路(第十节)

===接第九节===

(三)LVM逻辑卷管理器

LVM可以允许用户对硬盘资源进行动态调整。LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘通过卷组合并。用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。

逻辑卷管理器的技术结构:

组成硬盘的基本单元PE:Physical Extent(PE默认大小4.00MiB)

物理卷PV:Physical Volume,可以是物理硬盘、硬盘分区或者RAID磁盘阵列。

卷组VG:Volume Group

逻辑卷LV:Logical Volume

3.1、部署逻辑卷

常用的LVM部署命令:

功能/命令

物理卷管理

卷组管理

逻辑卷管理

扫描

pvscan

vgscan

lvscan

建立

pvcreate

vgcreate

lvcreate

显示

pvdisplay

vgdisplay

lvdisplay

删除

pvremove

vgremove

lvremove

扩展

--

vgextend

lvextend

缩小

--

vgreduce

lvreduce

(1)创建物理卷

[root@linuxprobe ~]# pvcreate /dev/sdb /dev/sdc     //把硬盘/dev/sdb、/dev/sdc创建成物理卷

  Physical volume "/dev/sdb" successfully created

  Physical volume "/dev/sdc" successfully created

[root@linuxprobe ~]# pvdisplay     //查看创建好的物理卷,卷组为空

   "/dev/sdc" is a new physical volume of "10.00 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sdc

  VG Name

  PV Size               10.00 GiB

  Allocatable           NO

  PE Size               0

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               3eHCPs-SWDN-Q0xW-H35F-L8Hw-7oWT-FhrS21

  "/dev/sdb" is a new physical volume of "10.00 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sdb

  VG Name

  PV Size               10.00 GiB

  Allocatable           NO

  PE Size               0

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               bYTCj6-oDsP-I1pI-yeFa-VKw3-B5FW-5vetRr

(2)创建卷组

[root@linuxprobe ~]# vgcreate mlgvg /dev/sdb /dev/sdc   //把物理卷/dev/sdb、/dev/sdc创建成卷组

  Volume group "mlgvg" successfully created

[root@linuxprobe ~]# pvdisplay     //查看创建好的物理卷,卷组已显示

  --- Physical volume ---

  PV Name               /dev/sdb

  VG Name               mlgvg

  PV Size               10.00 GiB / not usable 4.00 MiB

  Allocatable           yes

  PE Size               4.00 MiB

  Total PE              2559

  Free PE               2559

  Allocated PE          0

  PV UUID               bYTCj6-oDsP-I1pI-yeFa-VKw3-B5FW-5vetRr

  --- Physical volume ---

  PV Name               /dev/sdc

  VG Name               mlgvg

  PV Size               10.00 GiB / not usable 4.00 MiB

  Allocatable           yes

  PE Size               4.00 MiB

  Total PE              2559

  Free PE               2559

  Allocated PE          0

  PV UUID               3eHCPs-SWDN-Q0xW-H35F-L8Hw-7oWT-FhrS21

[root@linuxprobe ~]# vgdisplay  //查看创建的卷组

  --- Volume group ---

  VG Name               mlgvg

  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               19.99 GiB

  PE Size               4.00 MiB

  Total PE              5118

  Alloc PE / Size       0 / 0

  Free  PE / Size       5118 / 19.99 GiB

  VG UUID               hxvsyg-U6OO-dK3f-WU4i-3Nrr-TYmP-Qy3yZR

(3)创建逻辑卷

[root@linuxprobe ~]# lvcreate -n mlglv -l 100 mlgvg   //以-l参数(基本单元PE的数量)创建逻辑卷mlglv,大小为100*4M=400M。

  Logical volume "mlglv" created

[root@linuxprobe mlgvg]# lvcreate -n mlglv2 -l 200 mlgvg   //以-l参数(基本单元PE的数量)创建逻辑卷mlglv2,大小为200*4M=800M。

  Logical volume "mlglv2" created

[root@linuxprobe ~]# lvdisplay   //查看创建的逻辑卷

  --- Logical volume ---

  LV Path                /dev/mlgvg/mlglv

  LV Name                mlglv

  VG Name                mlgvg

  LV UUID                52pQW5-Zhv0-WjoF-cMFO-kgjR-qlZR-ZDHkJ7

  LV Write Access        read/write

  LV Creation host, time linuxprobe.com, 2020-03-06 19:36:15 +0800

  LV Status              available

  # open                 0

  LV Size                400.00 MiB

  Current LE             100

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:2

--- Logical volume ---

  LV Path                /dev/mlgvg/mlglv2

  LV Name                mlglv2

  VG Name                mlgvg

  LV UUID                8rn2PC-bQcZ-MErf-ENBC-JC93-ekiF-AFxgbr

  LV Write Access        read/write

  LV Creation host, time linuxprobe.com, 2020-03-06 19:41:37 +0800

  LV Status              available

  # open                 0

  LV Size                800.00 MiB

  Current LE             200

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:3

注意:xfs文件系统不支持LVM技术,所以LVM扩容后需要用ext4及以下文件系统格式化分区。

[root@linuxprobe ~]# mkfs.ext4 /dev/mlgvg/mlglv   //格式化文件系统

mke2fs 1.42.9 (28-Dec-2013)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

Stride=0 blocks, Stripe width=0 blocks

102400 inodes, 409600 blocks

20480 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=34078720

50 block groups

8192 blocks per group, 8192 fragments per group

2048 inodes per group

Superblock backups stored on blocks:

        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

[root@linuxprobe ~]# mkdir /mlglv1    //创建挂载点,挂载创建的LVM逻辑卷并查看是否挂载成功。

[root@linuxprobe ~]# mount /dev/mlgvg/mlglv /mlglv1/

[root@linuxprobe ~]# df -h

Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root     18G  3.2G   15G  19% /

devtmpfs                 985M     0  985M   0% /dev

tmpfs                    994M   80K  994M   1% /dev/shm

tmpfs                    994M  8.9M  986M   1% /run

tmpfs                    994M     0  994M   0% /sys/fs/cgroup

/dev/sr0                 3.5G  3.5G     0 100% /mnt/cdrom

/dev/sda1                497M  119M  379M  24% /boot

/dev/mapper/mlgvg-mlglv  380M  2.3M  354M   1% /mlglv1

注:如果需要开启自动挂载逻辑卷,需要编辑/etc/fstab配置文件,添加如下内容。

[root@linuxprobe ~]# vim /etc/fstab

# /etc/fstab

# Created by anaconda on Sun Feb 16 14:06:24 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/rhel-root   /                       xfs     defaults        1 1

UUID=0026f461-b0a2-4d90-8304-7cb4d0575432 /boot                   xfs     defaults        1 2

/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

/dev/sr0        /mnt/cdrom      iso9660 defaults        0       0

/dev/mlgvg/mlglv        /mlglv  ext4    defaults        0       0

/dev/mlgvg/mlglv2       /mlglv2 ext4    defaults        0       0

/dev/mlgvg/mlglv3       /mlglv3 ext4    defaults        0       0

注:reboot重启后再次查看,确定已实现自动挂载逻辑卷。

[root@linuxprobe ~]# df -h

Filesystem                Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root      18G  3.2G   15G  19% /

devtmpfs                  985M     0  985M   0% /dev

tmpfs                     994M   80K  994M   1% /dev/shm

tmpfs                     994M  8.9M  986M   1% /run

tmpfs                     994M     0  994M   0% /sys/fs/cgroup

/dev/sr0                  3.5G  3.5G     0 100% /mnt/cdrom

/dev/sda1                 497M  119M  379M  24% /boot

/dev/mapper/mlgvg-mlglv2  772M  1.6M  714M   1% /mlglv2

/dev/mapper/mlgvg-mlglv   380M  2.3M  354M   1% /mlglv

/dev/mapper/mlgvg-mlglv3  477M  2.3M  445M   1% /mlglv3

(4)扩容逻辑卷

[root@linuxprobe ~]# lvextend -L 800M /dev/mlgvg/mlglv //将逻辑卷/dev/mlgvg/mlglv扩容至800M

  Extending logical volume mlglv to 800.00 MiB

  Logical volume mlglv successfully resized

[root@linuxprobe ~]# e2fsck -f /dev/mlgvg/mlglv   //查看文件系统是否存在问题。

e2fsck 1.42.9 (28-Dec-2013)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/mlgvg/mlglv: 11/102400 files (0.0% non-contiguous), 23456/409600 blocks

[root@linuxprobe ~]# resize2fs /dev/mlgvg/mlglv   

//重新设置逻辑卷的大小,此处存在红帽的bug,若提示需要再次执行“e2fsck -f /dev/mlgvg/mlglv”命令,则需要再做几遍此命令或者重启再或者挂载逻辑卷后再执行此命令。

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/mlgvg/mlglv to 819200 (1k) blocks.

The filesystem on /dev/mlgvg/mlglv is now 819200 blocks long.

[root@linuxprobe ~]# mount -a  

[root@linuxprobe ~]# df -h

Filesystem                Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root      18G  3.2G   15G  19% /

devtmpfs                  985M     0  985M   0% /dev

tmpfs                     994M   80K  994M   1% /dev/shm

tmpfs                     994M  8.9M  986M   1% /run

tmpfs                     994M     0  994M   0% /sys/fs/cgroup

/dev/sr0                  3.5G  3.5G     0 100% /mnt/cdrom

/dev/sda1                 497M  119M  379M  24% /boot

/dev/mapper/mlgvg-mlglv2  772M  1.6M  714M   1% /mlglv2

/dev/mapper/mlgvg-mlglv3  477M  2.3M  445M   1% /mlglv3

/dev/mapper/mlgvg-mlglv   767M  2.5M  721M   1% /mlglv    

注:确认操作的逻辑卷/dev/mapper/mlgvg-mlglv已成功扩容至800M。

(5)缩小逻辑卷

[root@linuxprobe mlglv]# cp /home/EPEL-linuxprobe.com.tar.bz2 ./

//拷贝数据到逻辑卷,验证缩小逻辑卷是否会造成数据丢失。

[root@linuxprobe mlglv]# ll

total 125529

-rw-r--r--. 1 root root 128527996 Mar  6 19:53 EPEL-linuxprobe.com.tar.bz2

drwx------. 2 root root     12288 Mar  6 19:39 lost+found

[root@linuxprobe mlglv]# cd ..

[root@linuxprobe /]# umount /mlglv   //缩小逻辑卷前需要先卸载挂载点。

[root@linuxprobe /]# e2fsck -f /dev/mlgvg/mlglv  

//首先检查文件系统是否存在问题,确保数据不会丢失,如果没有问题可以下一步。

e2fsck 1.42.9 (28-Dec-2013)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/mlgvg/mlglv: 12/204800 files (0.0% non-contiguous), 162135/819200 blocks

[root@linuxprobe /]# resize2fs /dev/mlgvg/mlglv 500M  //其次重新设置逻辑卷大小为500M

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/mlgvg/mlglv to 512000 (1k) blocks.

The filesystem on /dev/mlgvg/mlglv is now 512000 blocks long.

[root@linuxprobe /]# lvreduce -L 500M /dev/mlgvg/mlglv    //最后缩小逻辑卷大小为500M

  WARNING: Reducing active logical volume to 500.00 MiB

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce mlglv? [y/n]: y

  Reducing logical volume mlglv to 500.00 MiB

  Logical volume mlglv successfully resized

[root@linuxprobe /]# mount -a    //挂载,验证逻辑卷是否缩小成功。

[root@linuxprobe /]# df -h

Filesystem                Size  Used Avail Use% Mounted on

/dev/mapper/rhel-root      18G  3.2G   15G  19% /

devtmpfs                  985M     0  985M   0% /dev

tmpfs                     994M   80K  994M   1% /dev/shm

tmpfs                     994M  8.9M  986M   1% /run

tmpfs                     994M     0  994M   0% /sys/fs/cgroup

/dev/sr0                  3.5G  3.5G     0 100% /mnt/cdrom

/dev/sda1                 497M  119M  379M  24% /boot

/dev/mapper/mlgvg-mlglv2  772M  1.6M  714M   1% /mlglv2

/dev/mapper/mlgvg-mlglv3  477M  2.3M  445M   1% /mlglv3

/dev/mapper/mlgvg-mlglv   477M  125M  323M  28% /mlglv

[root@linuxprobe /]# cd /mlglv

[root@linuxprobe mlglv]# ll       //验证数据是否丢失。

total 125530

-rw-r--r--. 1 root root 128527996 Mar  6 19:53 EPEL-linuxprobe.com.tar.bz2  //数据没有丢失

drwx------. 2 root root     12288 Mar  6 19:39 lost+found

注意:xfs文件系统不能缩小,只能增大。

说明:通过以下例子可以发现,创建逻辑卷时是按照一个物理卷空间使用完毕再去使用另一个物理卷的空间来创建满足逻辑卷空间大小的容量。

[root@linuxprobe mlglv]# pvdisplay

   --- Physical volume ---

  PV Name               /dev/sdb

  VG Name               mlgvg

  PV Size               10.00 GiB / not usable 4.00 MiB

  Allocatable           yes

  PE Size               4.00 MiB

  Total PE              2559

  Free PE               2109

  Allocated PE          450

  PV UUID               bYTCj6-oDsP-I1pI-yeFa-VKw3-B5FW-5vetRr

  --- Physical volume ---

  PV Name               /dev/sdc

  VG Name               mlgvg

  PV Size               10.00 GiB / not usable 4.00 MiB

  Allocatable           yes

  PE Size               4.00 MiB

  Total PE              2559

  Free PE               2559

  Allocated PE          0

  PV UUID               3eHCPs-SWDN-Q0xW-H35F-L8Hw-7oWT-FhrS21

(6)逻辑卷快照

LVM的快照卷功能有两个特点:

  • 快照卷的容量必须等同于逻辑卷的容量;
  • 快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。

[root@linuxprobe /]# lvcreate -L 500M -s -n mlglvsnap /dev/mlgvg/mlglv

//创建一个大小为500M,名字为mlglvsnap的快照卷。-s创建快照卷。

  Logical volume "mlglvsnap" created

[root@linuxprobe /]# lvdisplay

--- Logical volume ---

  LV Path                /dev/mlgvg/mlglvsnap

  LV Name                mlglvsnap

  VG Name                mlgvg

  LV UUID                5C2nN7-klci-hfR2-I92v-Qw7y-sxIa-pFb566

  LV Write Access        read/write

  LV Creation host, time linuxprobe.com, 2020-03-06 20:09:21 +0800

  LV snapshot status     active destination for mlglv

  LV Status              available

  # open                 0

  LV Size                500.00 MiB

  Current LE             125

  COW-table size         500.00 MiB

  COW-table LE           125

  Allocated to snapshot  0.00%

  Snapshot chunk size    4.00 KiB

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     8192

  Block device           253:5

[root@linuxprobe mlglv]# rm -rf EPEL-linuxprobe.com.tar.bz2

//删除一个文件,然后通过快照卷恢复,验证是否能恢复成功。

[root@linuxprobe mlglv]# ll

total 12

drwx------. 2 root root 12288 Mar  6 19:39 lost+found

[root@linuxprobe /]# umount /mlglv  //通过快照卷恢复文件需要先卸载挂载点。

[root@linuxprobe /]# lvconvert --merge /dev/mlgvg/mlglvsnap 

//通过快照卷恢复保护的逻辑卷数据。

  Merging of volume mlglvsnap started.

  mlglv: Merged: 100.0%

  Merge of snapshot into logical volume mlglv has finished.

  Logical volume "mlglvsnap" successfully removed

[root@linuxprobe /]# mount -a

[root@linuxprobe /]# cd /mlglv

[root@linuxprobe mlglv]# ll

total 125530

-rw-r--r--. 1 root root 128527996 Mar  6 19:53 EPEL-linuxprobe.com.tar.bz2  //验证确认数据已恢复。

drwx------. 2 root root     12288 Mar  6 19:39 lost+found

[root@linuxprobe mlglv]#

注:快照卷恢复完就没有了,为逻辑卷创建的快照只能恢复使用一次。

(7)删除逻辑卷

A、卸载挂载点

[root@linuxprobe /]# umount /mlglv

[root@linuxprobe /]# umount /mlglv2

[root@linuxprobe /]# umount /mlglv3

B、Vim编辑删除/etc/fstab中自动挂载的配置。

C、删除逻辑卷

[root@linuxprobe /]# lvremove /dev/mlgvg/mlglv

Do you really want to remove active logical volume mlglv? [y/n]: y

  Logical volume "mlglv" successfully removed

[root@linuxprobe /]# lvremove /dev/mlgvg/mlglv2

Do you really want to remove active logical volume mlglv2? [y/n]: y

  Logical volume "mlglv2" successfully removed

[root@linuxprobe /]# lvremove /dev/mlgvg/mlglv3

Do you really want to remove active logical volume mlglv3? [y/n]: y

  Logical volume "mlglv3" successfully removed

D、删除卷组

[root@linuxprobe /]# vgremove /dev/mlgvg

  Volume group "mlgvg" successfully removed

E、删除物理卷

[root@linuxprobe /]# pvremove /dev/sdb /dev/sdc

  Labels on physical volume "/dev/sdb" successfully wiped

  Labels on physical volume "/dev/sdc" successfully wiped

在上述操作执行完毕之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信息时就不会再看到之前创建的LVM信息了。

3.2、故障修复

注:若因错误修改配置文件而导致系统无法启动,可通过以下操作进入命令行模式修改配置来恢复。

举例1:该文件系统及挂载点已不存在,但/etc/fstab配置了开机自动挂载,将导致主机无法启动。

reboot重启虚拟机操作系统进入如下界面,输入root用户密码修改配置文件恢复即可。

3.3、修改网卡配置方法

注:每次修改完网卡配置后需要通过以下命令重启网卡服务

[root@linuxprobe ~]# systemctl restart network

方法1:通过修改配置文件修改网卡配置参数,标红的是主要参数。

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

HWADDR=00:0C:29:E6:C2:BF

TYPE=Ethernet

BOOTPROTO=static或none

NAME=eno16777736

UUID=9e2ccb08-b59a-4b2f-a3fd-05b58bcc5574

ONBOOT=yes

IPADDR=192.168.10.10

#NETMASK=255.255.255.0

PREFIX=24

GATEWAY=192.168.10.1

DNS1=114.114.114.114

DNS2=8.8.8.8

[root@linuxprobe ~]# ifconfig     //查看网卡配置

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255

        inet6 fe80::20c:29ff:fee6:c2bf  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:e6:c2:bf  txqueuelen 1000  (Ethernet)

        RX packets 6144  bytes 427796 (417.7 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 5284  bytes 659699 (644.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

方法2:通过nmtui命令打开图形界面修改网卡配置

[root@linuxprobe ~]# nmtui   //rhel5和rhel6的命令是setup

附:通过nmtui-hostname命令打开图形界面修改主机名

[root@linuxprobe ~]# nmtui-hostname

方法3:通过nm-connection-editor修改网卡配置。

[root@linuxprobe ~]# nm-connection-editor

方法4:图形菜单修改网卡配置

来源:站长平台

猜你喜欢

转载自www.cnblogs.com/1994july/p/12431428.html
今日推荐