Linux高级文件系统管理

                    

                        高级文件系统管理

本章内容:

设定文件系统配额

设定和管理软RAID设备

配置逻辑卷

设定LVM快照

btrfs文件系统

 

一、配置配额系统:

综述:

 

磁盘配额的作用范围:

    quota软件设置的磁盘配额功能,只在指定的文件系统分区中有效,用户使用其他未设置配额的文件系统时,将不会受到限制;

 

磁盘配额的限制对象:

    quota主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。

 

磁盘配额的限制类型:

    硬盘容量:限制用户能够使用的磁盘数据块(block)大小,也就是限制磁盘空间大小,默认单位为KB

    文件数量:限制用户能够拥有的文件个数。quota通过限制i节点的数量来实现对文件数量的限制。

 

磁盘配额的限制方法:

    软限制:制定一个软性的配额数值(如 480MB180个文件),在固定的宽限期内(默认为七天)允许用户暂时超过这个限制,但系统会给出警告信息。

    硬限制:指定一个硬性的配额数值(如 500MB200个文件),时绝对禁止用户超过这个限制值得,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制的值,否则软限制将失效。

 

1、以支持磁盘配额功能的方式挂载文件系统:

    除了内核和quota软件支持外,实施磁盘配额功能还有一个前提条件,即指定的分区必须已经挂载且支持磁盘配额功能。

    让分区支持磁盘配额选项:

     usrquota选项:支持对用户的磁盘配额;

     grpquota选项:支持对组的磁盘配额;

示例:

     在配置磁盘配额过程中,可以使用带-o usrquota grpquota 选项的mount命令重新挂载指定的分区以便增加对用户、组配额功能。

     mount  -o usrquot,grpquota  /dev/sdb1  /home

 

      若需要在每次系统开机后自动以支持磁盘配额的功能方式挂载该分区,可以将usrquotgrpquota选项参数写到/etc/fstab配置文件中。

      

      [root@centos7 home]# vim /etc/fstab

       /dev/sdb1   /home    ext4    defaults,usrquota,grpquota  0  0

      [root@centos7 home]#mount  -a

 

2、检测磁盘配额并生成配额文件:

         quotacheck命令:

               -a:表示扫描所有分区,查看是否有较早版本的配额文件;

               -c:常与ug选项配合使用,创建用户、组的配额文件;

               示例:

               [root@centos7 home]# quotacheck -cug /home

           查看在/home目录下生成的用户配额文件和组配额文件:

               [root@centos7 home]# file aquota.*

               aquota.group: data

               aquota.user:  data

               [root@centos7 home]#

          开启或者取消磁盘配额功能:

              quotaon :开启磁盘配额

              quotaon  -p 查看是否开启磁盘配额;

              quotaoff :关闭磁盘配额

 

         示例:

         查看是否开启磁盘配额:

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

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

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

              [root@centos7 home]#

         开启磁盘配额:

              [root@centos7 home]# quotaon /home

         关闭磁盘配额:

              [root@centos7 home]# quotaoff /home

  

     3、编辑用户和组的账号的配额设置:

               edquota命令:结合-u-g选项可用于编辑用户或组的配额设置;

           1edquota  -u  username

           2)直接在shell命令行编写(适合编写shell脚本使用)

                setquota  username  500000  600000   1500 2000  /filesystem

                示例:

                root@centos7 home]# setquota yibo  500000 600000  1500 2000 /home

           3)定义标准的用户 (相当于copy  user1的磁盘配额给user2

                edquota  -p  user1  user2

                示例:

                [root@centos7 home]# edquota -p zheng mage

 

          示例:

          为用户zheng编辑磁盘配额:

              [root@centos7 home]# edquota -u zheng

              Disk quotas for user zheng (uid 1000):

              Filesystem      blocks    soft  hard        inodes     soft     hard

              /dev/sdb1       0    500000   600000       0       1500     2000

 

          edquota的编辑界面中,各字段分别代表的含义如下:

 

           Filesystem:表示本行配置记录对应的文件系统,即配额的作用范围;

           blocks:表示用户已经使用的磁盘容量,单位为KB,该值由edquota自动计算;

           soft:第3列的soft对应为磁盘容量的软限制数值;

           hard:第4列的hard对应为磁盘容量的硬限制数值;

           inodes:表示用户当前已经拥有的文件数量,(i节点数)有edquota自动计算;

           soft:第6列的soft对应为文件数量的软限制数值;

           hard:第7列的hard对应为文件数量的硬限制数值;

 

测试磁盘配额:

        综上可知我们为用户zheng设置的磁盘硬限制是600MB,这是我们dd一个650MB的文件,这时我们已经看到拒绝写入数据了。

           [zheng@centos7 ~]$ dd if=/dev/zero of=/home/zheng/bb  bs=1M count=650

           sdb1: warning, user block quota exceeded.

           sdb1: write failed, user block limit reached.  (写入失败,磁盘配额空间已满)

           dd: error writing /home/zheng/bb: Disk quota exceeded

           586+0 records in

           585+0 records out

           614371328 bytes (614 MB) copied, 0.800515 s, 767 MB/s

           [zheng@centos7 ~]$ du -sh /home/zheng/bb

           586M /home/zheng/bb

           [zheng@centos7 ~]$

使用quota命令查看用户zheng的磁盘使用情况:

       [root@centos7 ~]# quota zheng

       Disk quotas for user zheng (uid 1000):

       Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

       /dev/sdb1  600000* 500000  600000   7days      15    1500    2000        

       [root@centos7 ~]#

使用repquota命令查看/home文件系统的配额使用情况报告:

       

       [root@centos7 home]# repquota /home

       *** Report for user quotas on device /dev/sdb1

       Block grace time: 7days; Inode grace time: 7days

                               Block limits                File limits

       User            used    soft    hard  grace    used  soft  hard  grace

       ———————————————————————-

       root      —      14       0       0              7     0     0       

       zheng     +-  600000  500000  600000  6days      15  1500  2000       

       yibo      —      14  500000  600000              7  1500  2000       

       mage      —      14  500000  600000              7  1500  2000       

  

      [root@centos7 home]#

 

配置磁盘配额使用的命令总结:

          usrquotagrpquota

          quotacheck

          quotaon  quotaoff

          edquota  setquota

          quota    repquota

          warnquota (磁盘配额报警软件,可以邮件通知)

 

RAID:磁盘阵列

 

      什么是RAID

          多个磁盘合成一个“阵列”来提供更好的性能、冗余或者两者都提供;提高I/O能力,磁盘并行读写,实现磁盘冗余。

 

       RAID实现方式:

           外接式RAID:通过扩展卡提供适配能力

           内接式RAID:主板集成RAID控制器

           硬件RAID在安装OS时在BLOS中配置

           software RAID:软件RAID

      

       RAID级别:

           RAID-0:条带卷

           读写速度 提升;可使用100%空间;无容错能力;最少磁盘数2个;

           RAID-1:镜像卷

           读性能提升,写性能下降;可用空间50%有冗余能力;最少磁盘数2个;

           RAID-4

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

           RAID-5

           读写性能提升;可用空间(N-1);有容错能力,允许最多损坏1块磁盘;最少磁盘数3块;

           RAID-6

           读写性能提升;可用空间(N-2);有容错能力,允许最多损坏2块硬盘,最少磁盘数2块;

           RAID-10

           读写性能提升;可用空间50%;有容错能力,每组镜像最多只能坏一块磁盘,最少磁盘数4块;

           RAID-01RAID-50

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

           JBODjust bunch of disks将多块磁盘的空间合并一个大的连续空间使用;可用空间sum

 

配置software RAID (软RAID):

     mdadm命令为RAID提供管理界面

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

     支持的RAID级别:LINEARRAID0RAID1RAID4RAID5RAID6RAID10

 

mdadm命令的语法格式:

     mdadm [mode] <raiddevice> [options] <component-devices>

              -C:创建模式:

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

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

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

                  -c CHUNK_SIZE:指明块大小;

                  -x#:指明空闲盘的个数;

               -G:增加设备分区到RAID中;

                  mdadm -G /dev/md# -n# -a /filesystem

               -D:显示RAID的详细信息;

                   1mdadm  -D  /dev/md#

                   2cat  /proc/mdstat

               -S:停止指定的RAID;

                   mdadm  -S  /dev/md#

               -A:启动RAID

                   mdadm  -A  /dev/md#

               -F:监控RAID

               管理选项:

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

                  -a:添加磁盘

                  -r:移除磁盘

示例:

   模拟硬盘故障:

mdadm    /dev/md0  -f  /dev/sda1

   模拟移除磁盘:

mdadm    /dev/md0  -r  /dev/sda1

   模拟添加磁盘:

mdadm    /dev/md0  -a  /dev/sda1

 

生成RAID配置文件:

     mdadm  -Ds   >>  /etc/mdadm.conf

删除RAID信息:

      mdadm   -zero-superblock   /dev/sdb1

 

RAID配置实例:

  使用mdadm命令创建/dev/md0

      [root@centos7 Desktop]# mdadm -C /dev/md0 -a yes -n 4 -l 5 -x 1 /dev/sd{c,d,e,f,g}1

     

   查看 RAID /dev/md0的详细信息:

       [root@centos7 Desktop]# mdadm -D /dev/md0

       ………………………………………………………..

           Number   Major   Minor   RaidDevice State

       0       8       33        0      active sync   /dev/sdc1

       1       8       49        1      active sync   /dev/sdd1

       2       8       65        2      active sync   /dev/sde1

       5       8       81        3      active sync   /dev/sdf1

 

       4       8       97        –      spare   /dev/sdg1

      [root@centos7 Desktop]#

     

 使用cat  /proc/mdstat也可以查看RAID详细信息;

      [root@centos7 Desktop]# cat /proc/mdstat

      Personalities : [raid6] [raid5] [raid4]

      md0 : active raid5 sdf1[5] sdg1[4](S) sde1[2] sdd1[1] sdc1[0]

           31432704 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

      

      unused devices: <none>

      [root@centos7 Desktop]#

 

 使用mkfs工具格式化RAID /dev/md0

     root@centos7 Desktop]# mkfs.ext4  /dev/md0

 

挂载RAID /dev/md0/etc/fstab文件实现开机自动挂载

RAID /dev/md0创建挂载目录

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

编辑/etc/fstab配置文件

   [root@centos7 Desktop]# vim /etc/fstab  (使用UUID代替/dev/md0

   UUID="63d8a215-b6dc-4de0-96b1-26da2425f988"  /mnt/raid  ext4 defaults   0 0

执行mount  -a -a选项:自动挂载所有支持自动挂载的设备)

   [root@centos7 Desktop]# mount -a

 

查看RAID /dev/md0挂载情况:

       [root@centos7 Desktop]# df -TH

  ………………………………….

  /dev/md0       ext4       32G   47M   30G   1% /mnt/raid

 

生成RAID /dev/md0配置文件:

  [root@centos7 Desktop]# mdadm -Ds /dev/md0  >> /etc/mdadm.conf

 

查看RAID /dev/md0配置文件:

[root@centos7 Desktop]# vim /etc/mdadm.conf

ARRAY /dev/md0 metadata=1.2 spares=1 name=centos7:0 UUID=4ef759d4:8d56c48d:bacbe2c1:7108b708

 

RAID测试和修复

 

模拟磁盘故障:

[root@centos7 Desktop]# mdadm /dev/md0 -f /dev/sdc1

这时我们查看RAID /dev/md0的状态:

[root@centos7 Desktop]# mdadm -D /dev/md0

    Number   Major   Minor   RaidDevice State

       4       8       97        0      spare rebuilding   /dev/sdg1

       1       8       49        1      active sync   /dev/sdd1

       2       8       65        2      active sync   /dev/sde1

       5       8       81        3      active sync   /dev/sdf1

 

       0       8       33        –      faulty   /dev/sdc1

[root@centos7 Desktop]#

这时我们发现备用磁盘/dev/sdg1已经开始重建顶替/dev/sdc1了;而/dev/sdc1已经是显示有错误的磁盘了。

 

RAID /dev/md0中移除损坏的/dev/sdc1

[root@centos7 Desktop]# mdadm /dev/md0 -r /dev/sdc1

mdadm: hot removed /dev/sdc1 from /dev/md0

[root@centos7 Desktop]#

这时我们在查看RAID /dev/md0的状态

[root@centos7 Desktop]# mdadm -D /dev/md0

    Number   Major   Minor   RaidDevice State

       4       8       97        0      active sync   /dev/sdg1

       1       8       49        1      active sync   /dev/sdd1

       2       8       65        2      active sync   /dev/sde1

       5       8       81        3      active sync   /dev/sdf1

[root@centos7 Desktop]#

这时我们发现RAID /dev/md0中有错误的磁盘/dev/sdc1已经不见了;

 

添加/dev/sdc1RAID /dev/md0

[root@centos7 Desktop]# mdadm /dev/md0  -a  /dev/sdc1

这时我们在查看RAID /dev/md0的状态

[root@centos7 Desktop]# mdadm -D /dev/md0

    Number   Major   Minor   RaidDevice State

       4       8       97        0      active sync   /dev/sdg1

       1       8       49        1      active sync   /dev/sdd1

       2       8       65        2      active sync   /dev/sde1

       5       8       81        3      active sync   /dev/sdf1

 

       6       8       33        –      spare   /dev/sdc1

   [root@centos7 Desktop]#

   这时我们发现RAID /dev/md0中的/dev/sdc1,又成为备份磁盘了;

 

RAID /dev/md0中增加新的成员

   [root@centos7 Desktop]# mdadm -G /dev/md0 -n 5 -a /dev/sdh1

   这时我们在查看RAID /dev/md0的状态

   [root@centos7 Desktop]# mdadm -D /dev/md0

    Number   Major   Minor   RaidDevice State

       4       8       97        0      active sync   /dev/sdg1

       1       8       49        1      active sync   /dev/sdd1

       2       8       65        2      active sync   /dev/sde1

       5       8       81        3      active sync   /dev/sdf1

       7       8      113        4      active sync   /dev/sdh1

 

       6       8       33        –      spare   /dev/sdc1

   [root@centos7 Desktop]#

   这时我们发现RAID /dev/md0中的成员已经变成5个了;

 

停止RAID/dev/md0服务:

停止软RAID服务需要先卸载RAID

root@centos7 Desktop]# umount /dev/md0

然后在停止软RAID

[root@centos7 Desktop]# mdadm -S  /dev/md0

mdadm: stopped /dev/md0

[root@centos7 Desktop]#

 

激活RAID/dev/md0服务:

[root@centos7 Desktop]# mdadm -A  /dev/md0

然后在执行mount  -a 挂载/dev/md0到指定目录下;(-a选项:自动挂载所有支持自动挂载的设备)

[root@centos7 Desktop]# mount -a

 

删软RAID步骤:

   1[root@centos7 Desktop]# umount /dev/md0

   2[root@centos7 Desktop]# mdadm -S /dev/md0

   3[root@centos7 Desktop]# rm -rf /etc/mdadm.conf

   4[root@centos7 Desktop]# vim /etc/fstab  (删除自动挂载配置行信息)

   5[root@centos7 Desktop]# fdisk /dev/sdc (删除里面的分区信息)

        [root@centos7 Desktop]# fdisk /dev/sdd (删除里面的分区信息)

        [root@centos7 Desktop]# fdisk /dev/sde (删除里面的分区信息)

        [root@centos7 Desktop]# fdisk /dev/sdf (删除里面的分区信息)

        [root@centos7 Desktop]# fdisk /dev/sdg (删除里面的分区信息)

        [root@centos7 Desktop]# fdisk /dev/sdh (删除里面的分区信息)

6)可以使用blkid命令查看一下看是否还有未删干净的分区信息;

     如果删除不干净分区信息可以使用:

     例: mdadm  -zero-supperblock  /dev/sdc1

 

LVM逻辑卷管理器:

       

LVMLinux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高了磁盘管理的灵活性。

 

/boot分区不能基于LVM逻辑卷创建,必须独立出来。

 

LVM逻辑卷的几个基本术语:

PV物理卷:物理卷是lvm机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录lvm的属性,并把存储空间分割成默认大小为4MB的基本单元PE,从而构成物理卷。

VG卷组:有一个或多个物理卷组成,在卷组中可以动态的添加或移除物理卷。

LV逻辑卷:逻辑卷是建立在卷组之上的,与物理卷没有直接管理。对于逻辑卷来说,每个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。

 

PV物理卷管理工具:

      pvscan:用于扫描系统中的所有物理卷。

      pvdisplay:用于显示物理卷的详细信息。

      pvcreate:用于将分区或整个磁盘转化为物理卷。

      pvremove:用于将物理卷还原成普通分区或磁盘。

      pvmove:用于在物理卷间的迁移;

 示例:

   创建物理卷:

     [root@centos7 Desktop]# pvcreate  /dev/sd{c,d,e}

   扫描系统中的物理卷:

     [root@centos7 Desktop]# pvscan

     PV /dev/sdc         lvm2 [20,00 GiB]

     PV /dev/sdd         lvm2 [20,00 GiB]

     PV /dev/sde         lvm2 [20,00 GiB]

     Total: 3 [60,00 GiB] / in use: 0 [0   ] / in no VG: 3 [60,00 GiB]

     [root@centos7 Desktop]#

   显示物理卷信息:

     [root@centos7 Desktop]# pvdisplay

   移除/dev/sde物理卷:

     [root@centos7 Desktop]# pvremove  /dev/sde

     Labels on physical volume "/dev/sde" successfully wiped

     [root@centos7 Desktop]#

   迁移/dev/sdc /dev/sde

     [root@centos7 Desktop]# pvmove /dev/sdc /dev/sde   (迁移时时间有点长,需等待)

 

VG卷组管理工具:

vgscan:扫描系统中建立的lvm卷组;

vgcreate:用于将一个或多个物理卷创建为一个卷组;

vgdisplay:用于显示系统中各卷组的详细信息;

vgremove:用于删除指定的组;

vgextend:用于扩展卷组的磁盘空间;

vgreduce:用于删除组中的物理卷

 

示例:

   创建卷组vg0

     [root@centos7 Desktop]# vgcreate vg0 /dev/sd{c,d,e}

      Volume group "vg0" successfully created

     [root@centos7 Desktop]#

   扫描系统中的卷组:

     [root@centos7 Desktop]# vgscan

     Reading all physical volumes.  This may take a while…

     Found volume group "vg0" using metadata type lvm2

     [root@centos7 Desktop]#

   显示系统中卷组的详细信息:

     [root@centos7 Desktop]# vgdisplay vg0

   删除卷组:

     [root@centos7 Desktop]# vgremove  vg0

     Volume group "vg0" successfully removed

     [root@centos7 Desktop]#

   扩展卷组:

     [root@centos7 Desktop]# vgextend  vg0 /dev/sde

     Volume group "vg0" successfully extended

     [root@centos7 Desktop]#

   删除卷组中的物理卷:

     [root@centos7 Desktop]# vgreduce  vg0 /dev/sde

     Removed "/dev/sde" from volume group "vg0"

     [root@centos7 Desktop]#

 

LV管理工具:

lvscan:扫描当前系统中建立的逻辑卷;

lvcreate:用于从指定的卷组中分隔空间,以创建逻辑卷;

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

lvextend:用于动态扩展逻辑卷空间;

lvremove:用于删除指定的逻辑卷;

lvreduce:用于缩减逻辑卷的大小;

 

示例:

   创建逻辑卷:

 [root@centos7 Desktop]# lvcreate  -L 20G -n lv0 vg0

  Logical volume "lv0" created.

 [root@centos7 Desktop]#

   格式化并挂载lvm逻辑卷:

 [root@centos7 Desktop]# mkfs.ext4 /dev/vg0/lv0

 [root@centos7 Desktop]# mkdir /mnt/lvm

 [root@centos7 Desktop]# vim /etc/fstab (挂载/dev/vg0/lv0使用UUID代替)

  UUID="7d4a3e54-3bd1-4d2c-97a8-13ed36231521" /mnt/lvm ext4  defaults        0 0

 [root@centos7 Desktop]# mount -a

   扫描当前系统中建立的逻辑卷;

 [root@centos7 Desktop]# lvscan

   显示逻辑卷的详细信息;

     [root@centos7 Desktop]# lvdisplay

   扩展lv0的逻辑卷空间

     [root@centos7 Desktop]# lvextend -L +10 /dev/vg0/lv0

     [root@centos7 Desktop]# resize2fs   /dev/vg0/lv0  (扩展完了同步文件系统)

     [root@centos7 Desktop]# lvextend -l +100%FREE /dev/vg0/lv0 (扩展卷组中剩余的所有空间到逻辑卷中)

   删除指定的lv逻辑卷:

     [root@centos7 Desktop]# lvremove /dev/vg0/lv0

   缩减lvm逻辑卷的大小:

     缩减lvm逻辑卷需要5步操作:

1[root@centos7 Desktop]# umount /dev/vg0/lv0

2[root@centos7 Desktop]# e2fsck -f /dev/vg0/lv0(检测lvm逻辑卷)

3[root@centos7 Desktop]# resize2fs /dev/vg0/lv0 20G(缩小文件系统)

4[root@centos7 Desktop]# lvreduce -L 20G /dev/vg0/lv0 (缩小lvm逻辑卷)

5[root@centos7 Desktop]# mount -a

6)使用df  -TH命令查看缩减后逻辑卷大小

 

逻辑卷管理器快照:

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝

对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择;

快照只有在他们和原来的逻辑卷不同时才消耗空间。

    在生成快照时会分配给他一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间。

    当原来的逻辑卷中有所改变,会将旧的数据复制到快照中去。

    快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据。

    建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用lvextend放大快照。

 

使用LVM快照:

为现有的逻辑卷创建快照

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

    挂载快照:

mkdir   -p  /mmt/snap

mount  -o  ro  /dev/vg0/snap-data   /mnt/snap

删除快照:

umount  /mnt/snap

lvremove   /dev/vg0/snnap-data

 

btrfs文件系统:

btrfs文件系统为技术预览版

核心特征:

    多物理卷支持:btrfs由多个底层物理卷组成:支持RAID,联机添加、移除、修改;

    写时复制更新机制:复制、更新及替换指针,而非就地更新;

    数据及元数据校验码:checksum

    子卷:sub_volume

    快照:支持快照的快照

    透明压缩;

 

文件系统创建:

    mkfs.btrfs

       -LLABEL

       -d<type> raid0 raid1 raid5 raid6 raid10 single

       -m<profile> raid0 raid1 raid5 raid6 raid10 single

      例: mkfs.btrfs  -L mydata   -f  /dev/sdb   /dev/sdc  

 

文件系统属性查看:  

     btrfs  filesystem  show blkid

挂载文件系统:

     mount  -t btrfs  /dev/sdb   MOUNT_POINT

透明压缩机制:

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

在线修改文件系统大小:

     btrfs  filesystem   resize  -10G /mydata

     btrfs  filesystem   resize  +10G /mydata

     btrfs  filesystem   resize  max  /mydata

查看文件系统:

      df -lh   btrfs  filesystem  df   /mydata

添加设备:

       btrfs  device  add  /dev/sdd   /mydata

平衡数据:

       btrfs  banlance  status   /mydata

       btrfs  banlance  stat     /mydata

       btrfs  banlance  pause   /mydata

       btrfs  banlance  cancel   /mydata

       btrfs  banlance  resume   /mydata

 删除设备:

       btrfs   device  delete  /dev/sdb  /mydata

 修改raid级别:注意raid对成员数量的要求

       btrfs  balance  start  -mconvert=raid1|raid0|raid5  /mydata

       btrfs  balance  start  -dconvert=raid1|raid0|raid5  /mydata

  子卷管理:

        btrfs   subvolume   list   /mydata

        btrfs   subvolume  create  /mydata/subv1

        umount  /mydata

        mount   -o  subvol=subv1 /dev/sdd   /mnt/subv1

        btrfs   subvolume  show  /mnt/subv1

        mount  /dev/sdb  /mydata  挂载父卷,子卷自动挂载

        mount  -o subvolid=###   /dev/sdd  /mnt/subv1

        btrfs   subvolume  show  /mnt/subv1

        btrfs  subvolume  delete  /mydata/subv1

  创建快照:

        btrfs  subvolume    snapshot   /mydatasubv1

        /mydata/snapshot_subv1

        btrfs  subvolume   llist  /mydata

  删除快照:

        btrfs   subvolume  delete  /mydata/snapshot_subv1

  对一个文件做快照

        cd  /mydata/subv1

        cp  –reflik   testfile  snapshot_testfile

 

实验ext4btrfs互换

            btrfs  balance   stat   -dconvert=single  /mydata

            btrfs  balance   stat   -mconvert=raid1  /mydata

            btrfs   device   delete  /dev/sdd   /mydata

            fdisk   /dev/sdd

            mkfs.ext4   /dev/sdd1

            mount    /dev/sdd1   /mnt

            cp  /etc/fstab  /mnt

            umount   /mnt

            fsck  -f  /dev/sdd1

            btrfs-convert  /dev/sdd1 转化ext4btrfs

            btrfs   filesystem   show

            mount   /dev/sdd1  /mnt

            btrfs 转化ext4文件系统

            umount   /mnt

            btrfs-convert  -r /dev/sdd1

            blkid  /dev/sdd1

            在转化成btrfs

            btrfs-convert   /dev/sdd1

 

 

 

 

 

 

               

 

 

 

 

 

 

 

 

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

(0)
zhengyibozhengyibo
上一篇 2016-09-06
下一篇 2016-09-06

相关推荐

  • 6个变态的C语言Hello World程序

    下面的六个程序片段主要完成这些事情: 输出Hello, World 混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。 hello1.c   #define _________ }     #define …

    Linux干货 2015-04-01
  • Hadoop集群配置(最全面总结)

    通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\ 官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.ht…

    Linux干货 2015-04-13
  • BT雷人的程序语言

    这个世界从来都不会缺少另类的东西,人类自然世界如此,计算机世界也一样。编程语言方面,看过本站《6个变态的C语言Hello World程序》的朋友们一定对BT和另类不会陌生,但那都是些小儿科,真正的BT和另类要是从语言级上来完成。让我们来看看其中一个比较另类的语言BrainFuck。看到这个程序语言的名字,请不要以为这是一个搞笑的语言,这是一个“严肃事情”,请…

    Linux干货 2015-04-03
  • 五大主流数据库模型

    导读:无论是关系型数据库还是非关系型数据库,都是某种数据模型的实现。本文将为大家简要介绍5种常见的数据模型,让我们来追本溯源,窥探现在流行的数据库解决方案背后的神秘世界。 什么是数据模型? 访问数据库中的数据取决于数据库实现的数据模型。数据模型会影响客户端通过API对数据的操作。不同的数据模型可能会提供或多或少的功能。一般而言,数据模型不会直接提供过多的功能…

    Linux干货 2015-04-04
  • Linux 内存管理

    1.Linux 进程在内存数据结构      可以看到一个可执行程序在存储(没有调入内存)时分为代码段,数据段,未初始化数据段三部分:      1) 代码段:存放CPU执行的机器指令。通常代码区是共享的,即其它执行程序可调用它。假如机器中有数个进程运行相同的一个程序,那么它们就…

    Linux干货 2015-04-13
  • Bash学习基础知识一“命令”

    Bash 学习基础知识 目录 一、Shell是个啥? 二、BASH的命令     2.1 命令的语法格式     2.2 什么是命令     2.4 命令的类型     …

    Linux干货 2015-04-03