高级文件管理系统

1、 设定文件系统配额

在内核中执行:

以文件系统即分区为单位启用

对不同组或者用户的策略不同

根据块或者节点进行限制:

执行软限制(soft limit),限时限制

硬限制(hard limit)

初始化:

分区挂载选项,针对用户或组:usrquota 、grpquota

初始化数据库,也即是创建用户或组文件系统配额数据库:quotacheck

执行:

开启或者取消配额:quotaon 、quotaoff

直接编辑配额:edquota username

在shell中直接编辑用户的配额设置:

setquota usename 4096 5120 40 50 /foo

定义原始标准用户,即是把user1用户的配额复制给user2用户:

edquota -p user1 user2

报告:

用户调查:quota

#quota wang 显示wang用户的配额及使用情况

配额概述:repquota

 #repquota /home 查看目录/home的配额情况

1)、对家目录/home实施文件系统配额设置(所有用户都使用家目录)-centos7

在/etc/fstab中配置挂载分区/dev/sda8:

UUID="843ba30b-23ff-4d30-a0a0-f8eb2de12c8c" /mnt/home ext4 defaults 0 0

/home目录下的文件迁移:

[root@localhost ~]# cd /home

[root@localhost home]# mv * /mnt/home

[root@localhost ~]# umount /mnt/home

在/etc/fstab中修改配置挂载分区/dev/sda8:

UUID="843ba30b-23ff-4d30-a0a0-f8eb2de12c8c" /home ext4 defaults,usrquota,grpquota 0 0

[root@centos7 ~]# mount -o remount /home

[root@centos7 home]# quotacheck -cug /home 必须在当前文件系统目录中进行操作

[root@centos7 home]# quotaon -p /home

group quota on /home (/dev/sda7) is off

user quota on /home (/dev/sda7) is off

[root@centos7 home]# quotaon /home

[root@centos7 home]# quotaon -p /home

group quota on /home (/dev/sda7) is on

user quota on /home (/dev/sda7) is on

[root@centos7 home]# edquota wang 为用户wang设置配额

[root@centos7 home]# edquota -p  wang mage 把用户wang的配额设置复制给用户mage

[root@centos7 home]# setquota hacker 80000 100000 0 0 /home 为用户hacker设置配额

[root@centos7 ~]# su – wang

Last login: Wed Aug 24 23:06:19 EDT 2016 on pts/0

[wang@centos7 ~]$ du -sh .

56K     .

[wang@centos7 ~]$ dd if=/dev/zero of=fi bs=1M count=80

sda7: warning, user block quota exceeded.

80+0 records in

80+0 records out

83886080 bytes (84 MB) copied, 0.260812 s, 322 MB/s

[wang@centos7 ~]$ ll -h

total 80M

-rw-rw-r–. 1 wang wang 80M Aug 29 06:35 fi

[root@centos7 ~]# edquota wang

Disk quotas for user wang (uid 1034):

  Filesystem                   blocks       soft       hard     inodes     soft     hard

  /dev/sda7                     81976      80000     100000         15        0        0

[wang@centos7 ~]$ su root

[root@centos7 wang]# chown root fi

[root@centos7 wang]# ll -h

total 81920

-rw-rw-r–. 1 root wang 80M Aug 29 06:35 fi

[root@centos7 wang]# edquota wang

Disk quotas for user wang (uid 1034):

  Filesystem                   blocks       soft       hard     inodes     soft     hard

  /dev/sda7                        56      80000     100000         14        0        0

用户wang的家目录下,只有属主是wang用户的文件,才是属于wang用户的文件

2)、对家目录/home实施文件系统配额设置(所有用户都使用家目录)-centos6

[root@localhost home]# quotacheck -c -u -g /home

quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied

quotacheck: Cannot initialize IO on new quotafile: Permission denied

quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied

quotacheck: Cannot initialize IO on new quotafile: Permission denied

[root@localhost mnt]# getenforce

Enforcing

[root@localhost mnt]# setenforce

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

[root@localhost home]# setenforce 0

[root@localhost home]# getenforce

Permissive

然后就可以继续按步骤进行配额设置

2、设定和管理软RAID 设备(实际工作中使用的是硬RAID)

RAID:多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

提IO能力:磁盘并行读写

提高耐用性;通过磁盘冗余来实现

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

1)、RAID 实现的方式:

外接式磁盘阵列通过扩展卡提供适配能力

内接式RAID 由主板集成RAID 控制器,安装OS前在BIOS里进行配置

2)、RAID 级别

RAID-0:

读、写性能提升

可用空间:N*min(S1,S2,…),因为是并行读写,所以可用空间取决于最小的硬盘空间

无容错能力

最少磁盘数:2,2

RAID-1:

读性能提升、写性能略有下降

可用空间:1*min(S1,S2,…)

有冗余能力,镜像卷式

最少磁盘数:2,2N

RAID-4

多块数据盘异或运算值存于一块专用校验盘

RAID-5

读、写性能提升

可用空间:(N-1)*min(S1,S2,…)

有容错能力:一个校验位,相当于一元运算,可以计算一个变量,所以允许最多1块磁盘损坏

最少磁盘数:3, 3+

RAID-6

读、写性能提升

可用空间:(N-2)*min(S1,S2,…)

有容错能力:二个校验位,相当于二元运算,可以计算两个变量,所以允许最多2 块磁盘损坏

最少磁盘数:4, 4+

RAID-10是RAID-1和RAID-0的组合:

读、写性能提升

可用空间:N*min(S1,S2,…)/2

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

RAID-01

RAID-50

RAID7:可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID

JBOD:Just a Bunch Of Disks

功能:将多块磁盘的空间合并一个大的连续空间使用

可用空间:sum(S1,S2,…)

常用级别:RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD

3)、软RAID可以用磁盘做,也可以用分区做,只不过用分区做时要改分区的id为fd

Mdadm命令为软RAID提供管理界面

RAID设备可命名为/dev/md0 、/dev/md1 、/dev/md2、/dev/md3 等等

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

支持的RAID 级别:LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10

mode模式:

创建:-C

重新激活: -A

管理:-f, -r, -a

<raiddevice>:/dev/md#

<component-devices>:成员设备可以是任意块设备

其中-C创建模式下包括选项:

-n #:使用#个块设备来创建此RAID

-l #:指明要创建的RAID 的级别

-a {yes|no}:自动创建目标RAID 设备的设备文件

-c CHUNK_SIZE:指明块大小

-x #:指明空闲盘的个数,当有raid磁盘损坏时空闲盘自动进行顶替

其中-D显示raid 的详细信息

#mdadm -D /dev/md#

其中管理模式:

-f: 标记指定磁盘为损坏状态

-a: 新添磁盘

-r: 移除磁盘

观察md 的状态:

#mdadm -D /dev/md0

#cat /proc/mdstat

#watch -n 1 cat /proc/mdstat

模拟磁盘故障:

#mdadm /dev/md0 -f /dev/sda1

移除磁盘:

#mdadm /dev/md0 –r /dev/sda1

新增添磁盘成员:

#mdadm –G /dev/md0 -n4 -a /dev/sdf1 其中-n4意思是原先有三个成员,现在加一个/dev/sdf1成为4个成员

生成配置文件:# mdadm –Ds >> /etc/mdadm.conf

#umount /dev/md0

停止raid设备(前提就是先取消挂载):#mdadm –S /dev/md0

 

重新激活(重新激活raid的前提是上面生成的配置文件/etc/mdadm.conf,若果没有此配置文件,停止raid后不能通过命令重新激活):# mdadm –As /dev/md0

停止或者重新激活raid设备,可以使用此命令查看状态#mdadm –D /dev/md0

删除raid 信息:mdadm –zero-superblock /dev/sdb1

4)、软RAID 配置实例

#fdisk /dev/sdb 创建/dev/sdb1分区,大小10G

#dd if=/dev/sdb of=/dev/sdc bs=1 count=512

#dd if=/dev/sdb of=/dev/sdd bs=1 count=512

#dd if=/dev/sdb of=/dev/sde bs=1 count=512

#partx –a /dev/sdc

#partx –a /dev/sdd

#partx –a /dev/sde

使用mdadm 创建并定义RAID 设备

#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1

用文件系统对每个RAID 设备进行格式化

#mke2fs -j /dev/md0

#vim /etc/fatab

/dev/md0 /mnt/raid ext4 defaults 0 0

#mount -a

#mdadm –detail/-D /dev/md0

测试:

#mdadm /dev/md0 –f /dev/sdb1  模拟磁盘/dev/sdb1故障

#mdadm /dev/md0 –r /dev/sda1  删除磁盘/dev/sdb1

#mdadm /dev/md0 -a /dev/sda1   增加磁盘/dev/sdb1

生成配置文件:#mdadm –Ds >> /etc/mdadm.conf

#umount /dev/md0

停止raid设备(前提就是先取消挂载):#mdadm –S /dev/md0

重新激活(重新激活raid的前提是上面生成的配置文件/etc/mdadm.conf,若果没有此配置文件,停止raid后不能通过下面命令重新激活):# mdadm –As /dev/md0

停止或者重新激活raid设备,可以使用此命令查看状态#mdadm –D /dev/md0

清除raid:

#umount /dev/md0

#mdadm –S /dev/md0

使用#fdisk /dev/sd#删除raid成员分区

但#blkid中相关信息还有保留,可以使用如下命令删除相应的raid 信息#mdadm –zero-superblock/dev/sdb#

然后修改挂载配置文件#vim /etc/fstab

最后#rm -f /etc/mdadm.conf

3、逻辑卷

1)、允许在多个物理设备间重新组织文件系统形成物理卷组

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

物理卷是用固定大小的物理区域(Physical Extent,PE )来定义的(即是组成卷组的物理卷大小固定相同)

在物理卷上创建的逻辑卷是由物理区域(PE )组成,可以在逻辑卷上创建文件系统

2)、pv-物理卷管理工具

显示pv信息:

#pvs 简要pv 信息显示

#pvdisplay 详细显示pv信息

创建pv:

#pvcreate /dev/DEVICE

#pvcreate /dev/sd{a7,b,c} 创建物理卷时,对于分区要把其的id设置为8e

3)、vg-物理卷组管理工具

显示卷组:

使用vgs和vgdisplay命令查看vg信息

创建卷组也即为卷组分配物理卷:

#vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

#vgcreate vg0 /dev/sd{a7,b,c}

管理卷组:

#vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

#pvcreate /dev/sdd

#vgextend vg0 /dev/sdd

#vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]

删除卷组中物理卷/dev/sdb的步骤:

先做#pvmove /dev/sdb  先搬家,即是把物理卷/dev/sdb中被逻辑卷占用的空间搬到到其他的pv物理卷中,防止因为删除物理卷/dev/sdb而破坏依赖于此物理卷的逻辑卷

再做#vgreduce vg0 /dev/sdb 从vg0中把物理卷/dev/sdb移除,但是/dev/sdb仍然是物理卷

最后#pvremove /dev/sdb 删除物理卷/dev/sdb,/dev/sdb不再是物理卷

也可以删除卷组vg0,其实卷组相当于磁盘,所以删除卷组要先删除上面的分区即逻辑卷,删除卷组的命令是#vgremove vg0

但是删除卷组后,组成卷组的pv还是存在的,只是不再属于任何卷组,可以使用如下命令删除各个pv

#pvremove /dev/sdb

4)、lv-逻辑卷管理工具

显示逻辑卷:

使用命令lvs和lvdisplay查看lv信息

创建逻辑卷:

#lvcreate -L #[mMgGtT] -n NAME VolumeGroup

#lvcreate -L 10G -n lv0 vg0

挂载逻辑卷:

其中逻辑卷/dev/vg0/lv0同于/dev/mapper/vg0-lv0是软链接,其都指向/dev/dm-0

#mkfs.ext4 /dev/vg0/lv0

#mkdir /mnt/lv0

#mount /dev/vg0/lv0 /mnt/lv0或者写入挂载配置文件/etc/fstab中

#mount -a

删除逻辑卷:

#umount /dev/vg0/lv0

#lvremove /dev/vg0/lv0 删除逻辑卷后,逻辑卷上的数据将丢失,否则进行事先数据备份

5)、扩展和缩减逻辑卷,下面用到的命令resize2fs只使用于ext系列文件系统扩展与缩减,在centos7上使用xfs_growfs命令进行逻辑卷扩展,但是此命令不能用于逻辑卷缩减

扩展逻辑卷:

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

#lvextend -L +10G /dev/vg0/lv0

#lvextend -L 20G /dev/vg0/lv0

#lvextend -l +4000 /dev/vg0/lv0 把逻辑卷/dev/vg0/lv0大小增加4000个PE

此外若要把剩余的卷组的空间全部给逻辑卷/dev/vg0/lv0,那么有如下命令:

#lvextend -r -l +100%FREE /dev/vg0/lv0 且此命令会自动扩展文件系统

# resize2fs /dev/VG_NAME/LV_NAME

# resize2fs /dev/vg0/lv0扩展文件系统即是同步逻辑卷增加的大小,否则#df -h 将无法看到增加

缩减逻辑卷(一般建议在缩减前备份数据以防数据的丢失或损坏):

# umount /dev/VG_NAME/LV_NAME

#umount /dev/vg0/lv0或者/mnt/lv0

# e2fsck -f /dev/VG_NAME/LV_NAME 缩减前的必要文件系统检测,否则会提示错误信息

# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

#resize2fs /dev/vg0/lv0 10G 缩减文件系统大小为10个G

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

# lvreduce -L 10G /dev/vg0/lv0 缩减逻辑卷大小到10G

# lvreduce -L -5G /dev/vg0/lv0 缩减逻辑卷大小5G

# mount -a 重新挂载

4、逻辑卷管理器-快照

1)、快照是特殊的逻辑卷,它在生成快照时对对应的逻辑卷数据进行准确形式拷贝,但是快照只有在它们对应的原逻辑卷或者快照中数据不同时才会真正消耗空间:

在创建快照时会分配给它一定的空间,但只有在对应的逻辑卷或者快照中数据有所改变才会使用这些空间,当对应的逻辑卷或者快照中数据有所改变时,会将其中旧的数据真正复制到快照中;快照中只含有原来的逻辑卷或者快照中未更改的原数据;因为快照只对对应逻辑卷或者快照中改变的文件的原数据进行真正备份,所以建立快照的卷大小只需要原始逻辑卷的15% ~20% 就够了,此外也可以使用lvextend 放大快照

2)、快照就是将当时的系统信息记录下来,就好像照相一般,若将来系统有任何数据改动了,则有改动数据的原始数据会被拷贝到快照区,没有改动的则由快照区和文件系统共享

3)、由于快照区与原本的lv共用很多PE 的区块,因此快照区与被快照的lv必须要在同一个VG 上,系统恢复的时候的文件数量不能高于快照区的实际容量

4)、使用LVM 快照

为现有逻辑卷/dev/vg0/data创建名为/dev/vg0/snap-data的快照:

#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data

其中-s选项是快照逻辑卷的特殊标记,-p r选项表示以只读方式创建快照逻辑卷

挂载快照:

#mkdir /mnt/snap

快照逻辑卷不需要创建文件系统,可直接挂载

#mount -o ro /dev/vg0/snap-data /mnt/snap 以只读方式挂载快照

删除快照:

#umount /mnt/snap

#lvremove /dev/vg0/snap-data

5、btrfs文件系统-centos7支持

1)、文件系统创建:

#mkfs.btrfs -f -L mydata /dev/sdb /dev/sdc

其中-f选项是强制执行

以/dev/sdb和/dev/sdc两块磁盘为基础创建btrfs文件系统,且两块磁盘是以一个整体使用的,此整体设备以/dev/sdb或者/dev/sdc均可表示

-d <type>: raid0, raid1, raid5, raid6, raid10, single

此选项指定数据的存储方式,成员数量依据指定的raid类型

-m <profile>: raid0, raid1, raid5, raid6, raid10, single,dup

此选项指定元数据的存储方式,成员数量依据指定的raid类型

属性查看:

#btrfs filesystem show

#blkid

挂载文件系统:

#mount  /dev/sdb MOUNT_POINT

#mount  /dev/sdc MOUNT_POINT

两种挂载等同效果,均是挂载/dev/sdb和/dev/sdc组成的整体设备,#df –h查看可知此文件系统的大小为两磁盘大小之和

2)、btrfs 文件系统

①、透明压缩机制-可以在挂载或者重新挂载时加上此挂载选项:

#mount -o compress={lzo|zlib}  DEVICE MOUNT_POINT

#mount -o compress={lzo|zlib},remount  DEVICE MOUNT_POINT

也可以使用如下命令查看btrfs文件系统组织数据的相关信息#btrfs filesystem df /mnt/mydata

②、在线修改文件系统大小

#btrfs filesystem resize -10G /mnt/mydata

#btrfs filesystem resize +5G /mnt/mydata

#btrfs filesystem resize max /mnt/mydata

③、添加或者删除btrfs文件系统成员设备:

#btrfs device add /dev/sdd /mnt/mydata

但是新加的成员设备不会自动存储原先数据,可以平衡各成员存储的数据:

#btrfs banlance status /mnt/mydata

删除设备:

#btrfs device delete /dev/sdb /mnt/mydata

修改btrfs文件系统组织数据的raid 级别,注意raid 对成员数量的要求:

#btrfs balance start -mconvert=raid1|raid0|raid5 /mnt/mydata 原数据的组织

#btrfs balance start -dconvert=raid1|raid0|raid5 /mnt/mydata  数据的组织

④、子卷管理,下面的子卷为/mnt/mydata/sub#:

查看子卷信息

#btrfs subvolume list /mnt/mydata

此建立的子卷表现为目录/mnt/mydata下的子目录但不是其目录文件

#btrfs subvolume create /mnt/mydata/sub1

#btrfs subvolume create /mnt/mydata/sub2

[root@centos7 ~]# btrfs subvolume create /mnt/mydata/sub1

Create subvolume '/mnt/mydata/sub1'

[root@centos7 ~]# btrfs subvolume create /mnt/mydata/sub2

Create subvolume '/mnt/mydata/sub2'

[root@centos7 ~]# btrfs subvolume list /mnt/mydata

ID 258 gen 8 top level 5 path sub1

ID 259 gen 9 top level 5 path sub2

此中ID号259代表子卷sub2,挂载时可以代替sub2使用,例如#mount -o subvolid=### /dev/sdd /mnt/sub#

挂载子卷

#mount -o subvol=sub1 /dev/sdd /mnt/sub1

#mount –o subvolid=259 /dev/sdd /mnt/sub2

子卷可以独立挂载独立使用,不依赖于/mnt/mydata是否挂载,其中/dev/sdd是指btrfs文件系统,也即指明子卷的来源

[root@centos7 ~]# mkdir /mnt/sub1

[root@centos7 ~]# mkdir /mnt/sub2

[root@centos7 ~]# mount -o subvol=sub1 /dev/sdb /mnt/sub1

[root@centos7 ~]# mount -o subvol=sub2 /dev/sdb /mnt/sub2

[root@centos7 ~]# df –h

/dev/sdb         60G   18M   56G   1% /mnt/mydata

/dev/sdb         60G   18M   56G   1% /mnt/sub1

/dev/sdb         60G   18M   56G   1% /mnt/sub2

#umount /mnt/mydata

[root@centos7 ~]# df –h

/dev/sdb         60G   18M   56G   1% /mnt/sub1

/dev/sdb         60G   18M   56G   1% /mnt/sub2

查看子卷的属性信息

#btrfs subvolume show /mnt/sub1

删除子卷

#umount /mnt/sub1

#btrfs subvolume delete /dev/mydata/sub1

⑤、创建或者删除快照:

创建快照-对子卷/mnt

#btrfs subvolume snapshot /mnt/mydata/sub1 /mnt/mydata/snapshot_sub1

删除快照

btrfs subvolume delete /mnt/mydata/snapshot_subv1

⑥、实验ext4 和btrfs互转

#btrfs device delete /dev/sdd /mnt/mydata

#fdisk /dev/sdd 分区

#mkfs.ext4 /dev/sdd1

#btrfs-convert /dev/sdd1  转化文件系统ext4 为btrfs

#btrfs-convert -r /dev/sdd1 文件系统btrfs 转化ext4 文件系统

#blkid /dev/sdd1

再转换成btrfs

#btrfs-convert /dev/sdd1

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

(0)
1861276386318612763863
上一篇 2016-09-01
下一篇 2016-09-01

相关推荐

  • sed用户小结

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] ‘command’ 输入文本  …

    Linux干货 2016-08-12
  • linux学习记录

    vm使用记录 1、安装vm程序; 2、下载Cenos—6.4*86_64_bin-DVD1.iso 安装: 1、新建一个虚拟机; 2、选择自定义安装(高级); 3、兼容性选择默认方式; 4、安装客户机操作系统(选择稍后安装操作系统方式); 5、选择客户机操作系统(选择Linux系统,版本号(选择自己下载的Linux系统版本,例如centos等)); 6、命名…

    Linux干货 2015-12-10
  • 什么叫Linux

    什么叫linux:     Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 谁编写的linux: Linux的出现,最早…

    Linux干货 2017-03-27
  • 用户与用户组相关的配置文件与命令总结

    Linux 中用户与用户组相关的配置文件与命令总结 用户与用户组 UID、GID 名称解析与解析库(passwd、group、shadow、gshadow) 用户信息库/etc/passwd 用户密码信息/etc/shadow 组的信息库/etc/group 组的密码信息/etc/gshadow 用户管理命令 用户组管理命令 用户与用户组 Linux是一种多…

    2016-10-23
  • Linux命令的使用格式以及命令帮助信息的获取方式

    1.Linux系统上的命令使用格式 2.Linux系统程序文件存放位置 3.Linux获取命令的帮助信息 区分内部命令和外部命令 内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。 外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。 #type COMMAND 内部命令获取帮助信息:#help COMMAND 外部命令获取帮助信息…

    Linux干货 2016-10-29
  • Linux的发展史

       在早期电气化发展时代1946年诞生了计算机事物,早期的计算机体积巨大,只能适用于一个人操作,而且运行速度慢。但已经形成计算机的架构体系,为了尽可能的榨干计算机资源在计算机发展的二阶段,于是有当时著名实验室BELL ,GE,MIT共同研发了一款叫MULTCS操作系统,这也是最早的操作系统。   1946年一个没有完成的梦想,…

    Linux干货 2016-10-13