高級文件系統管理1

本部分內容主要講述了高級文件系統的管理,包括設定文件系統配額,設定和管理軟RAID設備,配置邏輯卷,設定LVM快照和btrfs文件系統。其中文件系統配額和軟RAID在企業中使用的頻率并不很高,作為熟練即可,而邏輯卷的創建和LVM快照是非常重要的內容,必須精通并完全理解其原理。至于btrfs文件系統是新興的一種技術,作為了解即可。

一、知識整理

1、文件系統配額綜述:在內核中執行;以文件系統為單位啟用;對不同組或者用戶的策略不同,是根據設置配額的目錄下的文件的所屬主和所屬組進行空間限定;可以根據塊或者節點進行限制,包括軟限制和硬限制。

2、RAIDredundant arrays ofinexpensiveindependentdisks

1988university of California-Berkeley發明;多個磁盤合成一個陣列來提供更好的性能或者冗余性。RAID實現方式:外接式磁盤陣列:通過擴展卡提供適配能力;內接式RAID:主板階乘RAID控制器,安裝OS之前在BIOS中配置;軟RAIDsoftware RAID:在企業基本無應用,但可作為測試進行試驗。

3、用dd命令創建空文件,對文件格式化,掛載,即可是使用文件作為存儲設備。centos6中最多8個,centos7中依次生成??梢灾付?/span>loop設備與FILE的關系,使用命令losetup /dev/loop#  /testdir/FILE指定FILEloop2,再掛載可以使用FILE或者loop設備。例如:

[root@localhost testdir]# dd if=/dev/zero of=testfile count=10 bs=10M 
10+0 records in
10+0 records out
104857600 bytes (105 MB) copied, 1.23945 s, 84.6 MB/s

格式化之后blkid無法查看,但blkid /testdir/FILE能夠查看

[root@localhost testdir]# mke2fs -t ext4 ./testfile 
mke2fs 1.41.12 (17-May-2010)
./testfile is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks: 
8193, 24577, 40961, 57345, 73729
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost mnt]# mount /testdir/testfile testfile/
mount: /testdir/testfile is not a block device (maybe try `-o loop'?)
[root@localhost mnt]# mount /testdir/testfile testfile/ -o loop

其他的掛載方式還有:

ftp掛載:10.1.0.1:share  /mnt/dir  nfs  …

windows共享文件夾掛載\\10.1.0.1\FILE  /mnt/dir  cifs  …

二、詳細事例及命令

1、文件系統配額配置:配置好的soft limit有效期是7天,7天后soft變為hard。啟用配額之后的空間不包含之前使用的空間,只算開啟之后的使用。

①分區,將home目錄重新掛載,掛到新建的磁盤下,步驟如下:

fdisk /dev/sdc

cd mnt/

mkdir sdc1

mke2fs -t ext4 /dev/sdc1

mount /dev/sdc1 /mnt/sdc1

mv /home/*  /mnt/sdc1/

umount  /mnt/sdc1

mkdir  /home

mount /dev/sdc1  /home

②啟用配額功能,重新掛載并寫入/etc/fstabdefaults,usrquotagrpquota

重新掛載mount -o  remount,usrquota,grpquota  /home

③啟用配額功能并編輯:首先初始化:

[root@localhost home]# quotacheck -ug /home
[root@localhost home]# ls
aquota.group  aquota.user  gjy  lisi  lost+found  shiting  zhangsan
[root@localhost home]# quotaon /home/

vim中編輯配額:

[root@localhost home]# edquota shiting

直接在shell中給定配額

[root@localhost home]# setquota shiting 100000 200000 200 230 /home

查看某用戶的配額,查看所有配額repquota /home

[root@localhost home]# quota shiting
Disk quotas for user shiting (uid 1003): 
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
 /dev/sdc1      20  100000  200000               5     200     230

設定第二個用戶與第一個用戶的配額相同:

[root@localhost home]# edquota -p shiting lisi
[root@localhost home]# repquota /home
*** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User  used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root   --    20      0     0       2     0     0       
gjy   --    16       0    0       4     0     0       
zhangsan --   20       0   0        5     0     0       
lisi   --    20       100000  200000    5   200   230       
shiting --    20       100000  200000   5   200   230

④取消配額:

[root@localhost /]# quotaoff /home
[root@localhost /]# umount /home
[root@localhost /]# mount /dev/sdc1 /home
[root@localhost /]# cd home/
[root@localhost home]# ls
aquota.group  aquota.user  gjy  lisi  lost+found  shiting  zhangsan
[root@localhost home]# rm aquota.group 
rm: remove regular file 'aquota.group'? y
[root@localhost home]# rm aquota.user 
rm: remove regular file 'aquota.user'? y

2、RAID級別:常用級別56、10

RAID 0:條帶卷:

分散存儲,并行放置硬盤;最少磁盤數2;提高讀寫能力,沒有冗余能力;可用空間N*mins1,s2…)。

RAID 1:鏡像卷:

讀性能沒有提升,寫能力略有下降;可用空間:1*mins1,s2…);有冗余能力;最少磁盤數量2,數量太多也不好。

RAID 4

最少三塊磁盤,單塊磁盤作為校驗盤,使用異或機制,不允許一個以上損壞,訪問壓力較大。

RAID 5

循環放置校驗碼;分為左對稱和右對稱;讀寫能力有提升,可用空間(N-1*mins1s2…);有一塊硬盤的冗余能力;最少磁盤數量3個。

RAID 6

兩塊校驗盤,最少磁盤數4;可用空間(N-2*mins1,s2…);有容錯能力,讀寫能力提升;

RAID 10 :混合類型

相對01損壞可能性更小一些,讀寫能力提升,有容錯能力,每組鏡像最多只能壞一塊;最少4個磁盤,可用空間N*mins1,s2…/2

blob.png

blob.png

JBODjust a bunch of disks

將多塊磁盤空間合并一個大的連續的空間使用。

3、實現軟RAIDmdadm:模式化的工具:

mdadm [] raiddevice/dev/md#[] component-device(任意塊設備)

直接支持的級別有14、56、10,其他組合類型可以間接實現;

模式:創建模式:-C

-n # 使用#塊盤來創建此raid

-l # 指明要創建的raid的級別

-a {yes|no} 是否自動創建目標raid設備的設備文件

-c CHUNK_SIZE 指明塊大小,默認512KB

-x # 指明空閑盤的個數

-f 人為標記錯誤盤

裝配模式-A

監控模式:-F

管理模式:-f -r -a

-r 移除一塊硬盤

-a 添加一塊硬盤

-f 模擬失敗

-D 顯示raid 的詳細信息

停止md設備 -S

添加新成員:mdadm -G /dev/md0 -n 4 -a /dev/sdf1

生成配置文件mdadm -Ds > /etc/mdadm.conf

停止服務:mdadm -S /dev/md0:此時/dev下無md0設備文件

激活服務:mdadm -A -s /dev/md0使用生成的配置文件激活服務

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

此命令用于徹底刪除raid的信息,包括mdadm生成的配置信息等

三、課后練習

1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/test目錄,且默認有acl掛載選項。

fdisk /dev/sdb

mke2fs -t ext4 -b 2048 -m 1 -L "TEST"

mke2fs -t ext4 -b 2048 -m 1 -L "TEST" /dev/sdb1

dumpe2fs /dev/sdb1

vim /etc/fstab

/dev/sdb1          /testdir/         ext4    defaults,acl       0 0

2、寫一個腳本,完成如下功能:

(1) 列出當前系統識別到的所有磁盤設備;

(2) 如磁盤數量為1,則顯示其空間使用信息;

否則,則顯示最后一個磁盤上的空間使用信息。

#!/bin/bash
#test 2
#
INFO () {
fdisk -l | grep "Disk /dev/sd" | cut -d: -f1| cut -d" " -f2
}
echo "The disk name: "
INFO
NUM=`INFO | wc -l`
 
if [ $NUM -eq 1 ];then
        echo "The sda infomation: "
        fdisk -l /dev/sda | grep "/dev/sda"
else
        echo "Then `INFO | tail -1`infomation: "
        INFO | tail -1 | fdisk -l | grep "`INFO | tail -1`"
fi

3、創建一個可用空間為1GRAID1設備,要求其chunk大小為128k,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup目錄。

[root@localhost ~]# mdadm -C /dev/md0 -a yes -c 128  -l 1 -n 2  -x 1  /dev/sdc2 /dev/sdd1 /dev/sdd2
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? 
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# ll /dev/md0 
brw-rw----. 1 root disk 9, 0 7月  27 22:43 /dev/md0
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdd2[2](S) sdd1[1] sdc2[0]
      1047552 blocks super 1.2 [2/2] [UU]    
unused devices: <none>
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf
[root@localhost ~]# mdadm -D /dev/md0 
/dev/md0:
        Version : 1.2
  Creation Time : Wed Jul 27 22:43:13 2016
     Raid Level : raid1
     Array Size : 1047552 (1023.17 MiB 1072.69 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Wed Jul 27 22:43:23 2016
          State : clean 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : ea494c0e:ccb70d7f:a2cd0063:655b739c
         Events : 17
    Number   Major   Minor   RaidDevice State
       0       8       34        0      active sync   /dev/sdc2
       1       8       49        1      active sync   /dev/sdd1
       2       8       50        -      spare   /dev/sdd2
[root@localhost ~]# mke2fs -t ext4 /dev/md0 
[root@localhost /]# mkdir backup
[root@localhost /]# mount /dev/md0 /backup/
[root@localhost /]# mdadm -A -s /dev/md0 
[root@localhost /]# vim /etc/fstab

刪除此RAID設備的步驟:首先取消掛載:

[root@localhost /]# mdadm -S /dev/md0 
mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?
[root@localhost /]# umount /dev/md0 
[root@localhost /]# mdadm -S /dev/md0 
mdadm: stopped /dev/md0
[root@localhost /]# mdadm --zero-superblock /dev/sdd2
[root@localhost /]# mdadm --zero-superblock /dev/sdd1
[root@localhost /]# mdadm --zero-superblock /dev/sdc2
[root@localhost /]# rm /etc/mdadm.conf 
rm:是否刪除普通文件 "/etc/mdadm.conf"?y
[root@localhost /]# rm -fr backup/
[root@localhost /]# fdisk /dev/sdd
[root@localhost /]# fdisk /dev/sdc
[root@localhost /]# partprobe

4、創建由三塊硬盤組成的可用空間為2GRAID5設備,要求其chunk大小為256K,文件系統為ext4,開機可自動掛載至/mydata目錄。

[root@localhost /]# mdadm -C /dev/md0 -l 5 -n 3 -c 256 /dev/sdb1 /dev/sdb2 /dev/sdd1
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=2097152K  mtime=Wed Jul 27 17:55:15 2016
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost /]# ll /dev/md0 
brw-rw----. 1 root disk 9, 0 7月  27 23:14 /dev/md0
[root@localhost /]# mke2fs -t ext4 /dev/md0

[root@localhost /]# mdadm -Ds > /etc/mdadm.conf
[root@localhost /]# mdadm -D /dev/md0 
/dev/md0:
        Version : 1.2
▽Creation Time : Wed Jul 27 23:14:00 2016
     Raid Level : raid5
     Array Size : 2095104 (2046.34 MiB 2145.39 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent
    Update Time : Wed Jul 27 23:14:53 2016
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0
         Layout : left-symmetric
     Chunk Size : 256K
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : 1664368b:42f19d0a:3c6fb687:4a0b3b33
         Events : 18
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       3       8       49        2      active sync   /dev/sdd1
[root@localhost /]# mount /dev/md0 /mydata/
[root@localhost /]# vim /etc/fstab 
[root@localhost mydata]# mdadm -A -s /dev/md0

原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/41327

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-29
下一篇 2016-08-29

相關推薦

  • 進程理論和相關工具的使用

    內核的功用 進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等     Process: 運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID(Process ID,PID)號碼被用來標記各個進程     UID、GID、和SELinux語境決定對文件…

    Linux干貨 2017-08-28
  • CentOS 6.5下編譯安裝httpd+mysql+php過程實錄

    一、安裝環境     Linux系統:CentOS 6.5     Apache版本:http-2.4.12     MySQL版本:MySQL 5.6.24     PHP版本:PHP-5.6.8 …

    Linux干貨 2015-05-18
  • Linux基礎知識點(二)

    此篇博客只是記錄第二周未掌握或不熟悉的知識點,用來加深印象。

    2018-03-13
  • Docker入門

    一、Docker 架構 Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。 Docker 容器通過 Docker 鏡像來創建。 容器與鏡像的關系類似于面向對象編程中的對象與類。 Docker 面向對象 容器 對象 鏡像 類 Docker 鏡像(Images) Docker 鏡像是用于創建 Docker 容器的…

    2018-01-20
  • NFS,samba,vsftpd的基本使用

    一.NFS介紹 NFS(Network File System),全名叫做網絡文件系統,是由SUN公司研發的。顧名思義,簡單理解就是通過網絡互聯,將本地的文件系統共享出去,從而實現資源的共享,NFS監聽在TCP的2049端口上。當涉及到主機之間的通信時,就會存在安全問題,于是為了安全考慮,主動提出請求的一方(客戶端)需要提供一些基本信息來認證,這些信息是需要…

    Linux干貨 2017-01-04
  • RPM包管理——運維必備技能之一

    軟件運行環境: API:Application Programming Interface     POSIX :Portable OS 程序源代碼 –> 預處理 –> 編譯 –> 匯編 –> 鏈接     …

    Linux干貨 2016-08-21
欧美性久久久久