Linux在线添加磁盘扩容及LVM实战

1、描述GPT是什么,应该怎么使用

GPT的全称是Globally Unique Identifier Partition Table,意即GUID分区表,GUID 分区表 (GPT) 是作为 Extensible Firmware Interface (EFI) 计划的一部分引入的。相对于以往 PC 普遍使用的主引导记录 (MBR) 分区方案,GPT 提供了更加灵活的磁盘分区机制。分区指物理或逻辑磁盘上彼此连接的存储空间,但提供功能时就像物理上分隔的磁盘一样。对于系统固件和已安装的操作系统来说,分区是可见的。操作系统启动之前,对分区的访问由系统固件控制,操作系统启动后则由操作系统控制。
它具有如下优点:

1、支持2TB以上的大硬盘。
2、每个磁盘的分区个数几乎没有限制(Windows系统最多只允许划分128个分区)。
3、分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号,即 = 18,446,744,073,709,551,616。
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复;
5、循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率;
6、 虽然MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型,这使分区类型更不容易冲突;
7、每个分区可以有一个名称(不同于卷标)。

2、创建一个10G的分区,并格式化为ext4文件系统,要求:

(1)block大小为2048,预留空间20%,卷标为MYDATA

(2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的服务时间戳。

(3)可开机自动挂载

测试环境:

虚拟机新添加一块20G的新硬盘,即为 /dev/sdb

Linux在线添加磁盘扩容及LVM实战_第1张图片

用fdisk进行分区,创建一个新的主分区

Linux在线添加磁盘扩容及LVM实战_第2张图片

Linux在线添加磁盘扩容及LVM实战_第3张图片

w保存已创建的分区

创建挂载目录:/mydata

[root@localhost ~]# mkdir /mydata
[root@localhost ~]# ls -l /mydata/
total 0

[root@localhost ~]# mkfs.ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=MYDATA
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
1048576 blocks (20.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
    16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
    2048000, 3981312

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

Linux在线添加磁盘扩容及LVM实战_第4张图片

[root@localhost ~]# mount -o auto,noatime,noexec /dev/sdb1 /mydata
[root@localhost ~]# lsblk

Linux在线添加磁盘扩容及LVM实战_第5张图片

Linux在线添加磁盘扩容及LVM实战_第6张图片

加入开机自启动

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

Linux在线添加磁盘扩容及LVM实战_第7张图片
Linux在线添加磁盘扩容及LVM实战_第8张图片

Linux在线添加磁盘扩容及LVM实战_第9张图片

 

加入开机自启动以后,重新启动操作系统。(这里操作系统是虚拟环境,如生产环境勿重启)

Linux在线添加磁盘扩容及LVM实战_第10张图片

3、创建一个大小为1G的swap分区,并启用。

Linux在线添加磁盘扩容及LVM实战_第11张图片

Linux在线添加磁盘扩容及LVM实战_第12张图片

Linux在线添加磁盘扩容及LVM实战_第13张图片

Linux在线添加磁盘扩容及LVM实战_第14张图片

[root@localhost ~]# fdisk -l /dev/sdb #查看分区

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xb6160163

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb3        20973568    23070719     1048576   82  Linux swap / Solaris

Linux在线添加磁盘扩容及LVM实战_第15张图片

[root@localhost ~]# partprobe #执行同步磁盘分区

[root@localhost ~]# free -h  #查看内存

4、编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和

[root@localhost ~]# vi#bin/bash
#获取指定用户的ID号
id10=$(cat /etc/passwd |awk -F: '(NR>=10&&NR<=10){print $3}')
id20=$(cat /etc/passwd |head -20 |tail -1 |cut -d: -f3)
echo "第10个用户ID为:$id10"
echo "第20个用户ID为:$id20"
id_sum=$[$id10+$id20]
echo "第10个用户和第20个的用户id之和是:$id_sum"m id_passwd.sh 

Linux在线添加磁盘扩容及LVM实战_第16张图片

Linux在线添加磁盘扩容及LVM实战_第17张图片

[root@localhost ~]# bash id_passwd.sh 
第10个用户ID为:11
第20个用户ID为:996
第10个用户和第20个的用户id之和是:1007

4、将当前主机名保存至hostname变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com

[root@localhost ~]# vim 123.sh

#/bin/bash
hostname=$(hostname)
if [ $hostname == " " ];then
        hostnamectl set-hostname www.zzz.com
        echo "修改后的主机名为: "
        hostname
elif [ $hostname == "localhost.localdomain" ];then
        hostnamectl set-hostname www.zzz.com
        echo "修改后的主机名为: "
        hostname
elif [ $hostname == "localhost" ];then
        hostnamectl set-hostname www.magedu.com
        echo "修改后的主机名为: "
        hostname
else
  echo "主机名:$hostname 符合要求没有修改"
fi

Linux在线添加磁盘扩容及LVM实战_第18张图片

Linux在线添加磁盘扩容及LVM实战_第19张图片

[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname
www.zzz.com
[root@localhost ~]# hostname localhost
[root@localhost ~]# hostname
localhost
[root@localhost ~]# bash 123.sh 
修改后的主机名为: 
www.magedu.com

Linux在线添加磁盘扩容及LVM实战_第20张图片

6、lvm基本应用以及扩展缩减实现

LVM 基本术语

物理存储介质(PhysicalStorageMedia):
指系统上最底层的物理存储设备:磁盘,例如:/dev/sda、/dev/sdb等

物理卷(Physical Volume, PV):
指磁盘、磁盘分区或RAID设备,使用LVM前需要先将之制作成便于识别的物理卷PV

卷组(Volume Group, VG):
卷组由一个或多个物理卷PV组成,在卷组之上可创建一个或多个逻辑卷LV。卷组VG类似于非LVM系统的 物理磁盘

逻辑卷(Logical Volume, LV):
建立在卷组VG之上,相当于逻辑分区,可在逻辑卷LV上进行一系列操作(例如:格式化、挂载等)。 逻辑卷LV类似于非LVM系统的磁盘分区

物理扩展块(Physical Extent, PE):
当物理卷PV加入某一卷组VG后即被划分为基本单元PE,PE是LVM寻址的最小单元。PE的大小是可配置的,默认为4M。

逻辑扩展块(Logical Extent, LE):
卷组VG将PE划分给逻辑卷LV,在逻辑卷LV中的PE称为LE。在同一卷组VG中,PE和LE大小相同,且相互对应。LE也是LVM的最小寻址单位。

Linux在线添加磁盘扩容及LVM实战_第21张图片

pv管理工具:

pvs:简要pv信息显示

pvdisplay:显示pv的详细信息

pvcreate:/dev/DEVICE:创建pv

vg管理工具:

vgs:简要vg信息显示

vgdisplay

lv管理工具:

lvs:

lvdisplay

lvcreate -L #[mGgGtT] -n VolumeGroup

扩展逻辑卷:

lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME #修改逻辑边界

缩减逻辑卷:

umount /dev/VG_NAME/LV_NAME

e2fsck -f /dev/VG_NAME/LV_NAME

resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

mount

 

添加一块15GB硬盘

fdisk /dev/sdb 分区

Linux在线添加磁盘扩容及LVM实战_第22张图片

Linux在线添加磁盘扩容及LVM实战_第23张图片

[root@localhost ~]# pvcreate /dev/sdb3

Physical volume "/dev/sdb3" successfully created.

[root@localhost ~]# pvs

PV VG Fmt Attr PSize PFree

/dev/sda2 centos lvm2 a-- <19.00g 0

/dev/sdb3 lvm2 --- 3.00g 3.00g

 

 

[root@localhost ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 1 2 0 wz--n- <19.00g 0

[root@localhost ~]# vgcreate myvg /dev/sdb3 #创建一个VG

Volume group "myvg" successfully created

[root@localhost ~]# vgs

VG #PV #LV #SN Attr VSize VFree

centos 1 2 0 wz--n- <19.00g 0

myvg 1 0 0 wz--n- <3.00g <3.00g

Linux在线添加磁盘扩容及LVM实战_第24张图片

[root@localhost ~]# pvcreate /dev/sdb4 #添加/dev/sdb4加入myvg

Linux在线添加磁盘扩容及LVM实战_第25张图片

[root@localhost ~]# vgextend myvg /dev/sdb4

Linux在线添加磁盘扩容及LVM实战_第26张图片

卸载:

[root@localhost ~]# pvmove /dev/sdb4

No data to move for myvg.

[root@localhost ~]# vgre

vgreduce vgremove vgrename

[root@localhost ~]# vgreduce myvg /dev/sdb4

Removed "/dev/sdb4" from volume group "myvg"

Linux在线添加磁盘扩容及LVM实战_第27张图片

[root@localhost ~]# vgdisplay myvg

增加:

[root@localhost ~]# vgextend myvg /dev/sdb4

Volume group "myvg" successfully extended

[root@localhost ~]# vgdisplay myvg

Linux在线添加磁盘扩容及LVM实战_第28张图片

Linux在线添加磁盘扩容及LVM实战_第29张图片

[root@localhost ~]# lvcreate -L 2G -n mylv myvg #创建一个2G的逻辑卷 名称为 mylv 指定myvg卷组

Logical volume "mylv" created.

[root@localhost ~]# ls /dev/mapper/

centos-root centos-swap control myvg-mylv

[root@localhost ~]# mke2fs -t ext4 -b 1024 -L mylv /dev/myvg/mylv

Linux在线添加磁盘扩容及LVM实战_第30张图片

[root@localhost ~]# mkdir /backup #创建一个挂载目录

[root@localhost ~]# mount /dev/myvg/mylv /backup/ #挂载到/backup目录下

[root@localhost ~]# ls -hl /backup/

total 12K

drwx------. 2 root root 12K Mar 10 08:25 lost+found

Linux在线添加磁盘扩容及LVM实战_第31张图片

扩展逻辑卷:

[root@localhost ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 17G 3.8G 14G 23% /

devtmpfs 480M 0 480M 0% /dev

tmpfs 497M 0 497M 0% /dev/shm

tmpfs 497M 7.6M 489M 2% /run

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

/dev/sda1 1014M 156M 859M 16% /boot

tmpfs 100M 0 100M 0% /run/user/0

tmpfs 100M 48K 100M 1% /run/user/1000

/dev/mapper/myvg-mylv 2.0G 3.1M 1.9G 1% /backup

Linux在线添加磁盘扩容及LVM实战_第32张图片

[root@localhost ~]# lvextend -L +2G /dev/myvg/mylv

Size of logical volume myvg/mylv changed from 2.00 GiB (512 extents) to 4.00 GiB (1024 extents).

Logical volume myvg/mylv successfully resized.

[root@localhost ~]# resize2fs /dev/mapper/myvg-mylv

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/mapper/myvg-mylv is mounted on /backup; on-line resizing required

old_desc_blocks = 16, new_desc_blocks = 32

The filesystem on /dev/mapper/myvg-mylv is now 4194304 blocks long.

Linux在线添加磁盘扩容及LVM实战_第33张图片

卸载逻辑卷:

 

 

 

[root@localhost ~]# umount /dev/mapper/myvg-mylv

[root@localhost ~]# e2fsck -f /dev/mapper/myvg-mylv #强制检测

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

mylv: 11/262144 files (0.0% non-contiguous), 102892/4194304 blocks

 

[root@localhost ~]# resize2fs /dev/mapper/myvg-mylv 2G #缩进2G

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/mapper/myvg-mylv to 2097152 (1k) blocks.

The filesystem on /dev/mapper/myvg-mylv is now 2097152 blocks long.

 

[root@localhost ~]# lvreduce -L 2G /dev/myvg/mylv

[root@localhost ~]# mount /dev/myvg/mylv /backup/

[root@localhost ~]# df -lh

Linux在线添加磁盘扩容及LVM实战_第34张图片

你可能感兴趣的:(Linux,磁盘扩容,LVM,Linux系统运维)