高級文件管理系統

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.www58058.com/42386

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

相關推薦

  • 第六周作業

    請詳細總結vim編輯器的使用 模式化的編輯器 基本模式: 編輯模式,命令模式 輸入模式 末行模式: 內置的命令行接口; 打開文件: # vim [options] [file ..] +#:打開文件后,直接讓光標處于第#行的行首; +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的首; 模式轉換: 編輯模式:默認模式 編輯模式 …

    Linux干貨 2017-03-21
  • 8.3-特殊權限(作業篇)

    1. 在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如: alice能對這些新文件有讀寫權限,組g3的成員如: tom只能對新文件有讀權限,其它用戶(不屬于,g2,g3)不能訪問這個文件夾。 root@localhost ~]# mkdir -p /data/testdir [root…

    Linux干貨 2016-08-04
  • N26-第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     ~]#cp -r /etc/skel /home/tuser1     ~]#chmod -R go=-rwx /home/tuser1…

    Linux干貨 2017-01-05
  • N25_第一周_yecho

    ???

    Linux干貨 2016-12-01
  • centos 7 之nmcli命令

    1、nmcli命令的作用 nmcli : command‐line tool for controlling NetworkManager     NetworkManager:動態管理和監控網絡設置的守護進程。用戶和腳本都可使用命令行工具 nmcl…

    Linux干貨 2016-09-10
  • 正則表達式基礎

    正則表達式正則表達式? ? 元字符:? ? ? ? . ? ? ? 點表示任意單個字符 最少一次? ? ? ? \w ? ? ?匹配字母、數字、下劃線、或漢字。? ? ? ? \s ? ? ?匹配任意空白字符? ? ? ? \d ? ? ?匹配數字? ? ? ? \b ? ? ?匹配字符的開始或結束? ? ? ? ^ ? ? ? 匹配首字符? ? ? ? $…

    Linux干貨 2017-11-14
欧美性久久久久