实践参考:parted创建硬盘分区并创建LVM

简介:
从RHEL5开始,RHEL有了新的分区工具,parted,最大的亮点就是可以分2TB以上的分区,而且操作简单,个人感觉比fdisk好使
现在用一块硬盘/dev/sdb 使用parted分区,并且创建LVM

一。创建分区
1。先rpm -qf /sbin/parted
parted-2.1-13.el6.x86_64
如果没有就先安装

对/dev/sdb进行分区
parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)                
进入parted对话框,输入help得到帮助

2。进行分区,使用mkpart创建分区,先创建一个主分区,大小为2g

mkpart primary 1024K 2048G

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  标志
 1      1024kB  2048MB  2047MB  primary

3。 现在开始创建一个扩展分区

mkpart extended 2048M 8590M

4。 成功后创建逻辑分区

mkpart logical 2048M 8590M

5。成功后,需要更改分区类型,改为LVM

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  标志
 1      1024kB  2048MB  2047MB  primary
 2      2049MB  8590MB  6541MB  extended               lba
 5      2049MB  8590MB  6541MB  logical

6。使用toggle 更改硬盘类型

toggle 1 lvm

toggle 5 lvm

 

Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  标志
 1      1024kB  2048MB  2047MB  primary                lvm
 2      2049MB  8590MB  6541MB  extended               lba
 5      2049MB  8590MB  6541MB  logical                lvm


7。现在退出parted,然后分区就创建完毕了。这时候要么重启,然后使分区表生效,或者使用命令partprobe将分区表注入到内核中

[root@station ~]# fdisk -cul /dev/sdb

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 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 identifier: 0x00042564

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2000     4000000     1999000+  8e  Linux LVM
/dev/sdb2         4001792    16777215     6387712    f  W95 Ext'd (LBA)
/dev/sdb5         4001793    16777215     6387711+  8e  Linux LVM

二。创建完分区后,就可以创建PV了,PV应该是physical volume的缩写,物理卷

1。使用命令pvcreate创建物理卷

pvcreate /dev/sdb1

pvcreate /dev/sdb5

2。 创建VG(卷组),名称为rhel,并将PV包含在VG中,通过包含物理卷,可以为系统提供逻辑的划分空间

vgcreate rhel /dev/sdb1 /dev/sdb5

也可以通过vgextend 来向rhel组添加物理卷

vgextend rhel /dev/sdb6

3。 创建完卷组后,就可以创建逻辑卷了,这逻辑可真够复杂的,都已经三层了

lvcreate -n lvname -L 2G rhel

参数-n表示逻辑卷的名称,-L表示大小,后面是卷组名称

可以通过lvdisplay /dev/rhel来查看所创建的逻辑卷

4。 格式化逻辑卷为ext4格式,并添加挂载点

mkfs.ext4 /dev/rhel/lvname

mkdir /data

mount /dev/rhel/lvname /data

blkid /dev/rhel/lvname

echo "UUID=d8d7a0bd-0d3e-4dbb-a7bc-ad5f4529ae9b /data ext4 defaults 1 2" >>/etc/fstab

df -h /data

[root@station ~]# df -h /data
文件系统       容量  已用  可用 已用%% 挂载点
/dev/mapper/rhel-lvname
                      2.0G   67M  1.9G   4% /data

5。 现在一个逻辑卷就创建好了。并挂载到了/data目录下,大小为2G         

三。扩展逻辑卷和ext4

逻辑卷的好处就是可以扩展硬盘空间,当分配给一个挂载点的硬盘空间不足时,可以动态的加载硬盘容量,这个感觉跟微软的动态磁盘类似,不过微软的动态磁盘就不说什么了。这个东西有利,但是安全性无法保障,例如重装系统的时候,如果硬盘是动态磁盘,就准备哭吧。不知道RHEL对LVM的动态支持性怎么样,这个还有待于以后的实验。

首先,扩展逻辑卷,可以在线扩容。具体步骤如下:

1。先确保卷组的可扩容容量,防止扩容容量超出卷组可用容量,如果卷组容量不足,可以通过vgextend来扩展

vgdisplay rhel

2。扩展逻辑卷,例如,要给逻辑卷lvname扩展2G

lvresize -L +2G /dev/rhel/lvname

运行lvdisplay rhel查看,可以看到已经扩展成4G

[root@station ~]# lvdisplay rhel
  --- Logical volume ---
  LV Name                /dev/rhel/lvname
  VG Name                rhel
  LV UUID                tDIQwm-dCQ8-8GWO-1SGb-2vyx-M2tS-534s4t
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                4.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

但是挂载点/data却仍然是2GB

[root@station ~]# df -h /data
文件系统       容量  已用  可用 已用%% 挂载点
/dev/mapper/rhel-lvname
                      2.0G   67M  1.9G   4% /data

3。使用resize2fs来扩展挂载点的文件系统

resize2fs /dev/rhel/lvname

做完后,再查看/data,可以看到已经扩展

[root@station ~]# df -h /data
文件系统       容量  已用  可用 已用%% 挂载点
/dev/mapper/rhel-lvname
                      4.0G   68M  3.7G   2% /data

 

其次,可以缩减容量

在缩减容量的时候,需要将硬盘离线,并且需要备份数据。

缩减容量的顺序相反,先要从文件系统缩减容量,然后再从逻辑卷缩减容量

1。解除挂载

umount /data

2。 执行fsck验证所有文件系统数据结构

fsck -f /dev/rhel/lvname

3。 缩减文件系统,将大小调整为3G,也就是减少1G

resize2fs /dev/rhel/lvname 3G

4. 缩减逻辑卷(LV),将大小调整为3G

lvreduce /dev/rhel/lvname -L -1G

[root@station ~]# lvreduce /dev/rhel/lvname -L -1G
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvname? [y/n]: y
  Reducing logical volume lvname to 3.00 GiB
  Logical volume lvname successfully resized

这个比较讨厌,不能跟resize的容量对应起来。

5。重新挂载

mount -a
 

这样,一个LVM的创建,增加与删减的操作就完成了。 

 刚才看了一篇文章

http://hi.baidu.com/suofang/blog/item/02ce933dd837b614bba1676c.html

对LVM的逻辑结构讲的比较清楚,总算弄明白了PE个数与PE大小之间的关系,所以在扩展的时候,还可以通过PE的个数来扩展,这样的话,可以利用所有的空间或者部分的空间,比较欣赏这点。

像扩展空间就可以使用

lvextend -l +100 /dev/rhel/lvname

剩下的步骤一样,每个PE在创建vg的定义,默认是4m,可以修改成最大16GB,乖乖,真够大的,一个卷组里面最大的PE个数是2的16次方,65536个。这样灵活的组合,就可以管理容量巨大的卷组。非常犀利啊



本文转自 念槐聚 博客园博客,原文链接:http://www.cnblogs.com/haochuang/archive/2012/03/13/2393690.html,如需转载请自行联系原作者

相关文章
|
关系型数据库 MySQL 数据库
n8n自动化工具部署与使用
n8n是一款开源的工作流自动化工具,类似于IFTTT。它的优点是开源、可以自托管、下载安装方便、易于使用,可以互联上百种服务。n8n基于节点能够将任何工具连接在一起,轻松部署不同类型的任务。它可以做很多事情,比如:从数据库中获取数据后下载为excel然后通过邮件发送给其他人。
10893 1
|
缓存
银河麒麟server-V10配置镜像源
银河麒麟server-V10配置镜像源
17934 1
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
33580 4
Hadoop入门(一篇就够了)
|
应用服务中间件 网络安全 nginx
Nginx配置SSL证书时——nginx:[emerg]unknowndirectivessl错误
Nginx配置SSL证书时——nginx:[emerg]unknowndirectivessl错误
1919 0
|
11月前
|
人工智能 自然语言处理 数据挖掘
博物馆导览系统核心功能与设计思路,提升游客体验和运营效率
博物馆导览系统通过AR、VR、大数据等技术,实现展品智能讲解、AR互动、可视化数据看板等核心功能,助力博物馆智慧化升级,提升游客体验和运营效率
933 2
|
存储 Prometheus 监控
Prometheus 的报警机制:Alertmanager 的配置与使用
【8月更文第29天】Prometheus 是一个非常强大的监控系统,它不仅能够收集和存储时间序列数据,还能通过 Alertmanager 提供灵活的报警机制。Alertmanager 负责接收 Prometheus 发送的警报,并根据配置的规则执行相应的通知动作。本文将详细介绍如何配置 Alertmanager 以及如何使用它来实现基于 Prometheus 指标的报警通知。
4685 1
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
19936 1
|
SQL druid Java
解决 ‘The last packet successfully received from the server was xxx milliseconds ago‘ 问题
解决 ‘The last packet successfully received from the server was xxx milliseconds ago‘ 问题
7946 0
|
安全 Linux 网络安全
Linux——OpenSSH如何升级到最新版本
Linux——OpenSSH如何升级到最新版本
2349 0
Linux——OpenSSH如何升级到最新版本