热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux磁盘管理及Lvm

1.硬盘接口IDE:SATA:常用;SCSI:主要用于高端服务器,linux默认;SAS2.硬盘

1. 硬盘接口

IDE:

SATA:常用;

SCSI:主要用于高端服务器,linux默认;

SAS

 

2. 硬盘种类

SATA硬盘:串口硬盘,有较强的纠错能力;

SCSI 硬盘:默认硬盘;

SAS 硬盘

 

3. 分区符

3.1   MBR:Master Boot Record,硬盘主引导记录

主引导扇区总共512字节,

组成:

       1)主引导程序,boot loader,占446字节;

       2)硬盘分区表,DPT,Disk Partition table,占64字节;

   3)分区有效标志,55AA,magic number,占2字节。

3.2  分区

  分区编号:主分区1-4;逻辑分区5…..;

  主分区用来启动操作系统,存放操作系统的启动或操作系统,/boot分区最好放在主分区;

逻辑分区必须建立在扩展分区之上,扩展分区是不能使用的,它只作为逻辑分区的容器存在;

真正存放数据的是主分区和逻辑分区,逻辑分区存放着大量数据;

主分区+扩展分区最多只能有4个;扩展分区可以是0个、1个,最多1个;逻辑分区可以是0个,多个。

  使用fdisk对磁盘进行操作、分区、格式化。

 

3.3 分区命名方式

查看硬盘:ls /dev/sd*,若没有,用partprobe刷新一下

分区命名方式:/dev/sd[a-z]n

其中:

  a-z表示设备序号,如sda表示第一块scsi硬盘,sdb表示第二块scsi硬盘;

  n表示每块磁盘上划分的磁盘编号。

 

实验:

新建一个磁盘,用查看磁盘命令查看一下新建的磁盘

 

 

4.文件系统与数据资料

  文件系统:合理规划硬盘;在硬盘中执行文件建立、写入、读取、修改、转存、与控制。必须格式化文件系统才能规划数据。

常用文件系统:

  Ext3:日志文件系统,可以在系统异常宕机时避免文件系统丢失,自动修复数据的不一致与错误;硬盘容量较大时修复时间较长。

  Ext4:Ext3改进版,支持的存储容量高达1EB,能够有无限多的子目录,能够批量分配block块提高读写效率。

  XFS:高性能日志文件系统,默认文件系统,宕机后能够快速恢复,可恢复可能破坏的文件,储存容量极高,为18EB,读写效率极高。

 

5. fdisk管理分区

fdisk是linux发行版本中最常用的分区工具;

格式:fdisk [选项] device

 

m

查看全部可用的参数

t

改变某个分区的类型

n

添加新分区

p

查看分区信息

d

删除某个分区信息

w

保存并退出

l

列出所有可用的分区类型

q

不保存直接退出

 

实验: 新建分区。

直接用fdisk命令更改分区

 

键入n,新建分区

 

默认设置直至指定磁盘大小为5G(前面加+号)

 

键入p,查看分区信息

 

w,保存退出,再查看新建分区

 

sbd1直接不可用,必须给它创建文件系统

格式: mkfs.xfs /dev/sdb1  (默认文件格式为xfs)

 

文件系统创建完毕,但现在还不能使用,需要将该分区挂载(mount)。创建一个目录,将sdb1挂载到该目录下,查看磁盘信息。然后再cd到/zxj,就可以在/zxj下写东西了。

格式: mount 分区 路径(挂载点)

 

卸载用命令umount,该命令由root执行,格式:umount 挂载点

 

磁盘被挂载,但写入其内的内容并没有被删除,重新挂载后又可追回。

 

实验:扩展分区,逻辑分区。

卸载原分区或新建分区(扩展分区为e)

 

逻辑分区建立在扩展分区上,在此指定扩展分区大小为10G(前面一定要有+号)

键入p查看分区

 

w保存,用partprobe刷新,查看分区

 

在扩展分区上建立逻辑分区

 

可以看到在扩展分区新建选项出现了逻辑分区,逻辑分区分区号从5开始:

新建逻辑分区,指定大小为3G(不能超过扩展分区大小)

 

w保存,查看分区

 

指定文件系统(格式化)

 

挂载/zxj,然后将逻辑分区sdb5挂载到/zxj下,查看有sdb5分区,就可以给sdb5写内容了

 

但挂载到zxj下的分区在系统重启后会掉,所以将磁盘命令写到文件下面,如

 

格式:分区 挂载点 文件类型 默认值 不备份(第一个0) 不自检(第二个0)

 

保存退出。

现在来检测分区的自动挂载,先将分区挂载,再使用mount -a自动检测/etc/fstab 下的所有未挂载的分区进行挂载

 

但写到文件/etc/fstab下系统重启起不来,写到文件/etc/rc.local下执行命令

 

保存退出后给予指定的执行权限

 

重启之后可以看到分区自动挂载上了

 

6. 添加交换分区

内存不够时使用交换分区,但交换分区的读写速度要比物理分区的慢,一般不用。

交换分区的大小一般为真实物理内存的1.5-2倍,交换分区既可以做主分区,又可以做逻辑分区,以大小为2G的交换分区做实验,新建交换分区保存并退出。

 

指定文件系统:mkswap 分区

 

挂载swap

Swapon

 

卸载swapoff

格式 :swapoff 选项

选项有:

卸载掉刚才的sdb3分区

 

将swap交换分区完全挂掉,加选项-a

 

swap写在/etc/fstab或/etc/rc.local下开机自启。

 

7.LVM逻辑卷管理器

7.1  

管理器是linux为了解决硬盘设备在创建分区后不易修改分区大小的缺陷而对硬盘分区进行管理的一种机制,LVM是在线动态扩容,在硬盘分区和文件系统之间添加一个逻辑层,抽象一个卷组,将多块硬盘进行卷组合并,实现对硬盘分区的动态调整,LVM的技术构架:

 

7.2 LVM 常用术语

   介质(The physical media):LVM存储介质可以是磁盘分区,整个磁盘,RAID阵列或SAN磁盘,设备必须初始化为LVM物理卷,才能与LVM结合使用;

  PV(physical volume)  :物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;

  卷组VG(Volume Group)  :一个LVM卷组由一个或多个物理卷组成。

  逻辑卷LV(logical volume)  :LV建立在VG之上,可以在LV之上建立文件系统。

  PE(physical extents)  :PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB。

  LE(logical extent)  : lV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

 

7.3 部署逻辑卷

常用LVM部署命令:

功能/命令

物理卷管理

卷组管理

逻辑卷管理

扫描

pvscan

vgsan

lvscan

建立

pvcreate

vgcreate

lvcreate

显示

pvdisplay

vgdisplay

lvdisplay

删除

pvremove

vgremove

lvremove

扩展

 

vgextend

lvextend

缩小

 

vgreduce

lvreduce

 

步骤:

先添加两块磁盘用作实验,重启系统后查看磁盘

 

让两块硬盘支持LVM技术,将两磁盘创建为物理卷

 

创建卷组 :vgcreate 卷组名 路径

 

查看卷组信息

  

创建逻辑卷:需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位,第一种是以容量为单位,所使用的参数为-L。例如,使用 -L 50M生成一个大小为150MB的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为4MB。例如,使用-l 37可以生成一个大小为37×4MB=148MB的逻辑卷。-n 表示指定逻辑卷名。

[root@wrl zxj]# lvcreate -n lv_zxj -L 100M vg_zxj
logical volume
"lv_zxj" created.

-n lv_zxj:指定逻辑卷名;vg_zxj:逻辑卷是从卷组vg_zxj分割出100M大小。

 

逻辑卷格式化文件系统:

/dev/vg_zxj/lv_zxj:逻辑卷在卷组下

 

挂载使用:将逻辑卷组挂载到新建的/zxj目录下,并查看卷组

 

写在/etc/fstab或/etc/rc.local下开机自启。

[zxj@localhost ~]$ su
Password:
[root@localhost zxj]# ls
/dev/sd* #查看磁盘
/dev/sda /dev/sda2 /dev/sdb /dev/sdd
/dev/sda1 /dev/sda3 /dev/sdc /dev/sde
[root@localhost zxj]# pvcreate
/dev/sd{b,c} #创建物理卷Physical volume "/dev/sdb" successfully created.Physical volume "/dev/sdc" successfully created.
[root@localhost zxj]# vgcreate vg_zxj
/dev/sd{b,c} #创建卷组Volume group "vg_zxj" successfully created
[root@localhost zxj]# vgdisplay vg_zxj #查看卷组
--- Volume group ---VG Name vg_zxjSystem iD Format lvm2Metadata areas 2Metadata Sequence No 1VG access read/writeVG Status resizableMaX lV 0Cur lV 0Open lV 0Max PV 0Cur PV 2act PV 2VG Size 39.99 GiBPE Size 4.00 MiBTotal PE 10238alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiBVG UUiD owjXWk-QJ3q-dEjQ-gfaX-5Oin-1dOY-zeiVaR
[root@localhost zxj]# lvcreate
-n lv_zxj -L 500M vg_zxj #创建逻辑卷logical volume "lv_zxj" created.
[root@localhost zxj]# mkfs.xfs
/dev/vg_zxj/lv_zxj #格式化文件系统
meta
-data=/dev/vg_zxj/lv_zxj isize=512 agcount=4, agsize=32000 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data
= bsize=4096 blocks=128000, 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
[root@localhost zxj]# mkdir
/zxj #新建挂载点
[root@localhost zxj]# mount
/dev/vg_zxj/lv_zxj /zxj #挂载逻辑卷
[root@localhost zxj]# df
-h
/dev/mapper/vg_zxj-lv_zxj 497M 26M 472M 6% /zxj
[root@localhost zxj]# echo
"dev/vg_zxj/lv_zxj xfs defaults 0 0 ">> /etc/fstab
#写到文件下,开机自动挂载
[root@localhost zxj]# echo
"mount /dev/vg_zxj/lv_zxj /zxj">> /etc/rc.local #写到文件下,开机自动挂载

 

8. linux扩容逻辑卷Ext4格式 

步骤:

创建ext4格式逻辑卷:
[root@localhost zxj]# lvcreate
-l 500M -n ext4_zxj vg_zxj #逻辑卷大小为500Mlogical volume "ext4_zxj" created.
[root@localhost zxj]#
0 mkfs.ext4 /dev/vg_zxj/ext4_zxj #格式化文件系统为ext4
[root@localhost zxj]# mkdir
/zxj2
[root@localhost zxj]# mount
/dev/vg_zxj/ext4_zxj /zxj2 #挂载
[root@localhost zxj]# df
-h
/dev/mapper/vg_zxj-ext4_zxj 477M 2.3M 445M 1% /zxj2

卸载:
[root@localhost zxj]# umount
/zxj2扩容:
[root@localhost zxj]# lvextend
-l 700M /dev/vg_zxj/ext4_zxj #外层扩容Size of logical volume vg_zxj/ext4_zxj changed from 500.00 MiB (125 extents) to 700.00 MiB (175 extents).logical volume vg_zxj/ext4_zxj successfully resized.
[root@localhost zxj]# resize2fs
-f /dev/vg_zxj/ext4_zxj #内层缩容
resize2fs
1.42.9 (28-Dec-2013)
Resizing the filesystem on
/dev/vg_zxj/ext4_zxj to 716800 (1k) blocks.
The filesystem on
/dev/vg_zxj/ext4_zxj is now 716800 blocks long.
[root@localhost zxj]# e2fsck
-f /dev/vg_zxj/ext4_zxj #查看磁盘完整性
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/vg_zxj/ext4_zxj: 11/178816 files (0.0% non-contiguous), 33345/716800 blocks
[root@localhost zxj]# mount
/dev/vg_zxj/ext4_zxj /zxj2 #挂载
3[root@localhost zxj]# df -h #查看
/dev/mapper/vg_zxj-ext4_zxj 670M 2.5M 629M 1% /zxj2 #扩容到700M


9. linux
缩小逻辑卷 

[root@localhost zxj]# umount /zxj2 #保证数据安全,卸载
[root@localhost zxj]# e2fsck
-f /dev/vg_zxj/ext4_zxj #查看系统柜完整性
[root@localhost zxj]# resize2fs
/dev/vg_zxj/ext4_zxj 200M #内层大小重置
resize2fs
1.42.9 (28-Dec-2013)
Resizing the filesystem on
/dev/vg_zxj/ext4_zxj to 204800 (1k) blocks.
The filesystem on
/dev/vg_zxj/ext4_zxj is now 204800 blocks long.
[root@localhost zxj]# lvreduce
-l 200M /dev/vg_zxj/ext4_zxj #逻辑卷外层缩容
WaRNiNG: Reducing active logical volume to
200.00 MiB.THiS MaY DESTROY YOUR DaTa (filesystem etc.)
Do you really want to reduce vg_zxj
/ext4_zxj? [y/n]: ySize of logical volume vg_zxj/ext4_zxj changed from 700.00 MiB (175 extents) to 200.00 MiB (50 extents).logical volume vg_zxj/ext4_zxj successfully resized.
[root@localhost zxj]# mount
/dev/vg_zxj/ext4_zxj /zxj2 #挂载
[root@localhost zxj]# df
-h
/dev/mapper/vg_zxj-ext4_zxj 186M 1.6M 171M 1% /zxj2 #缩容到200M

 

10 linux扩容逻辑卷xfs格式

  xfs格式只能扩容,不能减小;

  xfs格式无需卸载,支持在线扩容。

步骤:

[root@localhost zxj]# pvcreate /dev/sd{b,c} #创建物理卷
Physical volume
"/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created.
[root@localhost zxj]# vgcreate vg_zxj
/dev/sd{b,c} #创建卷组Volume group "vg_zxj" successfully created
[root@localhost zxj]# lvcreate
-n lv_zxj -L 500M vg_zxj #创建逻辑卷
WARNING: xfs signature detected on
/dev/vg_zxj/lv_zxj at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/vg_zxj/lv_zxj.logical volume "lv_zxj" created.
[root@localhost zxj]# mkfs.xfs
/dev/vg_zxj/lv_zxj #格式化文件系统
[root@localhost zxj]# mkdir
/zxj
mkdir: cannot create directory ‘
/zxj’: File exists
[root@localhost zxj]# mount
/dev/vg_zxj/lv_zxj /zxj #挂载
[root@localhost zxj]# df
-h
/dev/mapper/vg_zxj-lv_zxj 497M 26M 472M 6% /zxj
[root@localhost zxj]# lvextend –L 700M
/dev/vg_zxj/lv_zxj #逻辑卷扩展Size of logical volume vg_zxj/lv_zxj changed from 500.00 MiB (125 extents) to 700.00 MiB (175 extents).logical volume vg_zxj/lv_zxj successfully resized.
[root@localhostzxj]#xfs_growfs
/dev/vg_zxj/lv_zxj #在线扩容
meta
-data=/dev/mapper/vg_zxj-lv_zxj isize=512 agcount=4, agsize=32000 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data
= bsize=4096 blocks=128000, imaxpct=25= sunit=0 swidth=0 blks
naming
=version 2 bsize=4096 ascii-ci=0 ftype=1
log
=internal bsize=4096 blocks=855, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime
=none extsz=4096 blocks=0, rtextents=0
data blocks changed
from 128000 to 179200
[root@localhost zxj]# df
-h #查看卷组,成功扩容
/dev/mapper/vg_zxj-lv_zxj 697M 26M 672M 4% /zxj

 

11. linux删除逻辑卷

步骤:

[root@localhost zxj]# umount /zxj2 #卸载
[root@localhost zxj]# lvremove
/dev/vg_zxj/ext4_zxj #删除逻辑卷
Do you really want to remove active logical volume vg_zxj
/ext4_zxj? [y/n]: ylogical volume "ext4_zxj" successfully removed
[root@localhost zxj]# vgremove vg_zxj #删除卷组
Do you really want to remove volume group
"vg_zxj" containing 1 logical volumes? [y/n]: y
Do you really want to remove active logical volume vg_zxj
/lv_zxj? [y/n]: ylogical volume "lv_zxj" successfully removedVolume group "vg_zxj" successfully removed
[root@localhost zxj]# pvremove
/dev/sd{b,c} #删除物理卷labels on physical volume "/dev/sdb" successfully wiped.labels on physical volume "/dev/sdc" successfully wiped.


转:https://www.cnblogs.com/ajunyu/p/10878424.html



推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • 在尝试使用 Android 发送 SOAP 请求时遇到错误,服务器返回 '无法处理请求' 的信息,并指出某个值不能为 null。本文探讨了可能的原因及解决方案。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 在尝试通过自定义端口部署Spring Cloud Eureka时遇到了连接失败的问题。本文详细描述了问题的现象,并提供了有效的解决方案,以帮助遇到类似情况的开发者。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
author-avatar
纠结丿灬情殇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有