高级文件系统管理之mdadm与lvm的创建

配置配额系统

磁盘配额就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间,比如一些网盘就是基于这个功能来做的,分配给用户固定的空间,花钱买,可以将空间设置的更大。

功能作用

磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度的使用磁盘空间造成其它用户无法运行或工作甚至影响系统运行。这个功能不止是linux有,windows系统当中也有磁盘配额。

综述

它是在内核中运行的,以文件系统为单位启用,对不同组合用户的策略不同,根据块或者节点进行限制

执行软限制(soft limit

硬限制(hard limit

 

初始化

分区挂载选项:usrquotagrpquota

当你相对某个分区做磁盘配额时,需要在/etc/fstab中的挂载选项写上这两项才能做磁盘配额,完成之后需要重新挂载(mount –o remount  device  mount_point)

初始化数据库:quotacheck

quotacheck [ -gubcfinvdMmR ]  [  -F  quota-format  ]  -a  | filesystem

选项:

-c:创建

-u:对某个用户设置磁盘配额

-g:对某个组设置磁盘配额

-m:不用重新挂载

例如我想对/home做磁盘配额就需要初始化数据库

quotacheck –cumg  /home

初始化完成后会在/home目录下生成两个文件aquota.group,aquota.user

     1.jpg

启用配额

quotaon  mount_point

关闭配额

quotaoff  mount_point

编辑配额:通过打开文件编辑内容

Disk quotas for user hadoop (uid 500):

  Filesystem                blocks       soft    hard    inodes   soft    hard

  /dev/mapper/VolGroup-lv_home 2048       0      0       12       0        0

blocks:当前目录下的文件总大小

soft:触发警告的初始值,最低容量限制

hard:允许储存最大的容量限制

inodes:当前目录的文件数量

soft:文件的最小值

hadr:单个文件大小的最大值

当我们相对hadoop用户设置磁盘配置时只需要更改blocks后面的softhard限制,大小根据自己的实际情况来定,也可以定义创建单个文件的大小

命令行直接编辑

setquota  username  4096   5120  40 50  /home

这里的限制容量大小的默认值为字节

示例

setquota  hadoop  4096  5120  40   50  /home

有时候需要批量设置某些用户的磁盘配额,一个个重新创建太麻烦,这里介绍一种批量创建的方法:

edquota  -p   user1   user2user1设定要的配额值给user2同样设定

edquota -p xxxx `awk -F: ’$3 >499 {print $1}’ /etc/passwd`

查询磁盘配额

 quota

 repquota  -a

假如有多个分区为quota,可用repquota -u 挂载点 查询单个分区的使用情况

     2.jpg

 

 

RAID

  什么是RAID?

RAID(Redundant  Arry  of Inexpensive  Disk)称为廉价磁盘冗余阵列。RAID的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格贵的磁盘,目前RAID技术大致分为两种:基于硬件的RAID技术和软件实现的RAID,其中linux下通过自带的软件(mdadm)就能实现RAID的功能,所以它配置灵活、管理方便。同时使用RAID,还可以实现将几个屋里磁盘合并成为一个更大的虚拟设备,从而达到性能改进和数据冗余的目的,当然基于硬件的RAID解决的方案比基于软件RAID技术在使用性能上稍胜一筹,具体表现在检测和修复多为错误的能力、错误磁盘自动检测和阵列重建等方面。

 

作用

提高IO能力,磁盘并行读写

提高耐用性,磁盘冗余来实现

级别,多块磁盘组织在一起的工作方式有所不同

RAID实现的方式

外接式磁盘整理额:

通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器,安装OS前在BIOS中配置

RAID,例如mdadm

 

 

RAID级别

RAID-0

也称为为条带模式,即把连续的数据分散到多个磁盘上存取,如图所示,当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求,这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为读取和写入实在设备上并行完成的,读取和写入性能将会增加这通常是运行RAID-0的原因,但RAID-0没有数据冗余,如果磁盘出现故障,那么僵无法恢复任何数据。成本低,要求至少两个磁盘,一般只是在那些对数据安全性要求不高的情况下才被使用。

容错性

冗余

热备盘

读性能

随机写性能

连续写性能

需要的磁盘数

22N

可用容量

100%

典型应用

无故障的迅速读写,要求安全性不高,如图形工作站

     3.jpg

 

RAID-1

RAID-1又称为镜像,一个具有全冗余的模式,如图,RAID可以用两个或2n个磁盘,并使用0块或更多的备用磁盘,每次写数据时会同时写入镜像盘,这种阵列可靠性高,但其有效容量减小到总容量的一般,同时这些磁盘的大小应该相等,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩,更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降,RAID 1磁盘控制器的负载相当大,用多个磁盘控制器可以提高数据的安全性和可用性。

容错性

冗余

热备盘

读性能

随机写性能

连续写性能

需要的磁盘数

22N

可用容量

50%

     4.jpg

 

RAID-4

RAID4在一个磁盘上保存校验信息,兵役RAID0的方式将数据写入其他磁盘,如果一个磁盘出现故障,可以使用校验信息来重建所有数据,如果两个磁盘出现故障,那么所有数据豆浆丢失,RAID4不常使用,原因是将校验信息存储在同一个磁盘上,每次写入其他磁盘时,都必须更新这些信息,大致大写的写入数据容易造成校验判的瓶颈。

容错性

冗余

热备盘

读性能

随机写性能

连续写性能

需要的磁盘数

2或以上

可用容量

n-1/n

     5.jpg

RAID-5

RAID可以理解为是RAID0RAID1的折中方案,但没有完全使用RAID1的镜像理念,而是使用了就奇偶校验信息来作为数据恢复的方式,没有单独指定的校验盘,而是交的存取数据及奇偶校验信息与所有磁盘上,在读写性能上都提升了,对于RAID5来说大部分数据传输只对一块磁盘操作,可进行秉性操作,在RAID5中有写损失,即每一次写操作,将产生四个实际的读写操作,其中两次读旧的数据及就信息,两次写心得数据及奇偶信息。

 

容错性

冗余

奇偶校验

热备盘

读性能

随机写性能

连续写性能

需要的磁盘数

3个或3个以上

可用容量

n-1/n

典型应用

队数据传输要求安全性高如金融,数据库,存储

         6.jpg

 

RAID6

RAID6RAID家族中的新技术,是在RAID5的基础上扩展而来的,所以同RAID5一样,数据和校验码都是被分成数据块然后分贝存储到磁盘阵列的各个硬盘上。RAID加入了一个独立的校验磁盘,它把分布在磁盘上的校验码都备份在一起,这样在磁盘整列就允许多个磁盘同时出现故障,但消耗了太多的磁盘空间。

容错性

冗余

奇偶校验

热备盘

读性能

随机写性能

连续写性能

需要的磁盘数

4个或4个以上

可用容量

n-2/n

典型应用

队数据传输要求安全性高如金融,数据库,存储

      7.jpg   

RAID-10

RAID-10是一个RAID0RAID1的组合体,它是利用奇偶校验实现条带及镜像,所以它记性了RAID0的快速和RAID1的安全,我们知道,RAID1在这里就是一个冗余的备份阵列,而RAID0则负责数据的读写速度,更多的情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像

容错性

冗余

偶校

热备盘

读性能

随机写性能

连续写性能

需要的磁盘数

4个或4个以上

可用容量

50%

典型应用

队数据传输要求安全性高如金融,数据库,存储

         8.jpg  

 

RAID-01

RAID-01以四个磁盘组成的RAID 0+1为例,其数据存储方式如图所示:RAID 0+1是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。由于RAID 0+1也通过数据的100%备份功能提供数据安全保障,因此RAID 0+1的磁盘空间利用率与RAID 1相同,存储成本高。当镜像盘的中任意一个磁盘坏带,数据将会丢失

     10.jpg

 

 

RAID

通过软件的方式来实现raid各个级别的功能,性能没有硬件raid那么强大,但它可以用来在测试环境当中使用。linux当中使用mdadm这个工具来实现raid的功能

mdadm:为软RAID提供管理界面

为空余磁盘添加冗余,结合内核中的mdmutil devices),RAID设备可命令为/dev/md0/dev/md1等等

 

 

mdadm:模式化的工具

语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

支持的RAID级别:Linux supports LINEAR md devices, RAID0  (striping),  RAID1  (mirror-

       ing), RAID4, RAID5, RAID6, RAID10, MULTIPATH, FAULTY, and CONTAINER.

模式:

创建模式  -C

专用选项

 -l  指定raid级别

 -n  指定设备数量

 -a  自动为其创建设备文件   yes|no

 -c  指定chunk大小一般设定为2^n,默认为64k

 -x  指定空闲盘个数,当其中某个盘坏掉,自动顶上去

 

管理模式  -F

-a  –add     添加磁盘

–r  –remove  删除磁盘

-f   –fail     模拟损坏磁盘

mdadm /dev/md0   -a  /dev/sdb1

mdadm /dev/md0   -r   /dev/sdb2

mdadm /dev/md0   -f   /dev/sdb3

 

监控模式 –F

 查看软raid的状态,相当于查看/proc/mdstat

 

增长模式 –G

比如我要想某个raid设备当中添加一块新磁盘以扩大raid的容量

mdadm –G /dev/md0 –n4 -a /dev/sdf1

 

装配模式         -A

raid设备时停止的状态时,可以使用此模式将其激活

mdadm –A  /dev/md0  /dev/sdb1  /dev/sdb2  /dev/sdb3

 

查看RAID的阵列的详细信息

mdadm  -D  /dev/md0或者查看文件/proc/mdstat

 

停止阵列

mdadm  -S  /dev/md0

 

将当前RAID信息保存至配置文件,以便以后进行装配

mdadm  -D –s  >/etc/mdadm.conf

删除raid

raid之前必须要先停止raid设备,然后删除raid信息

mdadm  –zero-superblock  /dev/sdb1

mdadm  –zero-superblock  /dev/sdb2

mdadm  –zero-superblock  /dev/sdb3

 

示例:

创建一个可用空间为1GRAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

由于RAID1的利用率是100%,所以这里只需要创建一块空间大小为1G的分区,将分区类型改为fd,然后创建raid,然后又要求需要一块空闲盘,所以还得创建一个大小同为1G的分区,分区类型也得改为fd,开机需要自动挂载,这是需要将条目写到/etc/fstab    d当中去

第一步、分两个区大小都为1G,完成后更改分区的类型为fd Linux auto raid类型

第二步、创建raid mdadm -C /dev/md0 a yes  -c 128k  -l 1 -n 1 -x 1  /dev/sdc{5,6}

第三步、格式化  mke2fs  t ext4  /dev/md0

第四步、将条目写到/etc/fstab中去,实现开机自动挂载

 3.jpg

4.jpg

2:创建由三块硬盘组成的可用空间为2GRAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

     5.jpg   

     6.jpg    

逻辑卷管理

LVM Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz MauelshagenLinux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统 遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)

好处

允许对卷进行方便操作的抽象层,包括重新设定文件系统大小

允许在多个物理设备间重新组织文件系统

将设备指定为物理卷,用一个或多个物理卷来创建一个卷组

lvm可以弹性的更改lvm的容量

         11.jpg

LVM基本术语

物理存储介质:这里指系统的存储设备如/dev/sda  /dev/sdb等等

物理卷:物理卷就是指硬盘分区或逻辑上与磁盘分区具有同样的功能

卷组:LVM卷组类似于lvm系统中的物理硬盘,其有物理卷组成。可以在卷组上创建一个或多个lvm分区,lvm卷组由一个或多个物理卷组成

逻辑卷:lvm的逻辑卷类似于硬盘分区,在逻辑卷之上可以建立文件系统

PEphysical extend)每个一个物理卷被划分为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元,默认为4MB,可以更改

LE:逻辑卷也被划分成为LE的可被寻址的基本单位,在同一卷组中,LE的大小和PE是相同的。

简单的说就是:

PV:是物理的磁盘分区

VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。

LV:也就是从VG中划分的逻辑分区

dmdevice mapper:将一个或多个底层设备组织成一个逻辑设备的模块

设备名:/dev/dm-#

软连接

/dev/mapper/Vg_name-Lv_name

 /dev/mapper/vol0-root

/dev/Vg_name_Lv_name

/dev/vol0/root

 

pv管理工具

pvs:简要查看pv信息

pvdisplay:详细查看pv信息,也可在后面跟某个设备,查看某个pv的详细信息

创建pv

pvcreate

pvcreate  [–commandprofile  ProfileName]  [-d|–debug]  [-h|–help] [-t|–test]

       [-v|–verbose] [–version] [-f[f]|–force [–force]] [-y|–yes]  [–labelsector]

       [–bootloaderareasize  size] [-M|–metadatatype type] [–[pv]metadatacopies Num-

       berOfCopies] [–metadatasize  size]  [–metadataignore  {y|n}]  [–dataalignment

       alignment]   [–dataalignmentoffset   alignment_offset]   [–restorefile   file]

       [–norestorefile] [–setphysicalvolumesize  size]  [-u|–uuid  uuid]  [-Z|–zero

       {y|n}] PhysicalVolume [PhysicalVolume…]

pvcreate  /dev/sdb1  /dev/sdb2  /dev/sdb3

 

vg管理工具

显示卷组

vgs:简要显示vg信息

vgdisplay:详细显示vg信息

创建卷组

vgcreate

      vgcreate [-s|–physicalextentsize  PhysicalEx- tentSize[bBsSkKmMgGtTpPeE]]   [–shared]   [–systemid   SystemID]   [-t|–test] [-v|–verbose] [–version] [PHYSICAL DEVICE OPTIONS] VolumeGroupName PhysicalDe-vicePath [PhysicalDevicePath…]

 

vgcreate   vg0  /dev/sdb1  /dev/sdb2  /dev/sdb3

 

管理卷组

vgextend 拉伸卷组

vgextend  vg0  /dev/sdc1  /dev/sdc2

 

删除卷组

vgremove,先将数据移动到指定的设备上,然后再删除,将底层存在pv上的数据移动到其他硬盘,pvmove /dev/sdb{1,2,3} /dev/sdc{1,2,3}

vgreduce vg0 /dev/sdb{1,2,3} 将卷组上的pv移除

vgremove vg0  最后移除卷组

lv管理工具

lvs:简要显示逻辑卷的信息

lvdisplay:详细显示逻辑卷的信息

创建逻辑卷

lvcreate

lvcreate [-a|–activate [ [–cachesettings key=value] [-c|–chunksize ChunkSize]  [{-l|–extents]LogicalExtentsNumber[%{FREE|PVS|VG}] | -L|–size LogicalVolumeSize}[-i|–stripes Stripes [-I|–stripesize StripeSize]]] [-h|-?|–help][-s|–snapshot]  [-t|–test]  [–type SegmentType] [-v|–verbose]

  

lvcreate  -L  [mMgGtT]  -n  lv_name  vgname

-l # :使用多少个PE的容量来创建逻辑卷

-L  :直接指定使用多大容量来创建卷组

重新设定文件系统的大小

fsadm[options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

 

扩展逻辑卷

lvextend    -L [+]#[mMgGtT] /   dev/VG_NAME/LV_NAME  扩大物理边界

resize2fs /dev/VG_NAME/LV_NAME   扩大逻辑边界

 

示例:

 

1、创建一个至少有两个PV组成的大小为10G的名为testvgVG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

第一步分两个分区,并且大小为10G更改分区类型为8e

第二步、创建pv   pvcreate /dev/sdc2 /dev/sdc3

第三步、创建卷组 vgcreate vg0   -s  16M /dev/sdc2 /dev/sdc3

第四部、创建卷组 lvcreate  -L 20G n testvg  vg0

第五步、格式化挂载  mke2fs t ext4  /dev/vg0/testlv  ,mount /dev/vg0/testlv   /users (如果目录实现不存在需要创建)

第六步、为了开机能够挂载写到/etc/fstab 当中去

       12.jpg

       13.jpg  

 

      

       
 2、扩展testlv至7G,要求archlinux用户的文件不能丢失

要扩展必须先要查看testlv他的卷组当中的剩余空间还够不够,如果卷组当中的剩余空间不够的,需要再创建一个分区,然后拉伸卷组的空间,之后扩展逻辑卷,使用lvextend之后只是拉伸了物理空间,而逻辑空间的还是没有改变,这里需要执行resize2fs  device这条命令来动态拉伸逻辑卷的空间

第一步、查看卷组所剩空间大小vgdisplay  vg0查看FREE PE那一项还有没有空间,正好我这里是有的

第二步、拉伸逻辑卷  lvextend  -L +2G  /dev/vg0/testlv 

第三步、使其生效  resize2fs  /dev/vg0/testlv

     14.jpg   

           

原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/40750

(0)
上一篇 2016-08-26 17:21
下一篇 2016-08-27 15:00

相关推荐

  • Linux无人值守安装

    前言     通常情况下,我们安装Linux操作系统的时候需要从光盘启动,通过系统光盘bootloader启动安装程序,进入交互式安装模式,由用户配置安装选项,如磁盘分区、选择安装包等操作;安装完毕后重启结束安装。在生产环境中,成百上千台服务器需要安装操作系统的时候如果也采用交互式安装模式,无疑是极其低效的。本文主要介…

    Linux干货 2015-05-18
  • CentOS系统启动流程与grub

    本文主要讲述CenOS系统启动的整个流程。 对于CentOS系统来说,整个启动过程可分为4个阶段,分别是:加点自检,加载MBR,加载内核并执行初始化信息,初始化用户空间。下面就具体来描述每个过程都做了什么。 一.加点自检(power on system test,POST) 任何一种操作系统的启动,第一步必定是加点自检,主要功能是装载在硬件芯片CMOS之上的…

    Linux干货 2016-11-29
  • linux入门基础知识及简单命令介绍

    1、计算机硬件组成介绍 计算机主要由cpu(运算器、控制器),内存,I/O,外部存储等构成。     cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作。不能从硬盘中直接取数据。     内存从外部存储中取出数据供cpu运存。内存的最小单位是字节…

    Linux干货 2017-08-28
  • Linux磁盘、文件系统管理

    对Linux而言,其哲学思想之一就是一切皆文件,因此Linux之上所有设备的操作都是通过文件接口来实现的,也就是说在访问设备的时候就如同访问一个文件一样,因为他们使用的都是文件系统接口。  设备也分种类,如:     1、块设备:block 其存取单位是“块”,如硬盘    &n…

    Linux干货 2016-08-29
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行…

    Linux干货 2016-08-10
  • 08.02 笔记总结

    1. newgrp 用来临时切换主组。    root 切换, 不需要组密码。    而普通用户切换是需要组密码的。    newgrp 组名  用来切换当前用户的组信息 2. pwunconv     //  将密码的密文复制到/etc/passw…

    Linux干货 2016-08-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-02 10:30

    文章内容完整,思路清晰,理论和实践相结合,具有很强的操作性,整体下来读者能学到很多知识。