天天看點

進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理

時間:2017.12.04

作者:李強

參考:man,info,magedu講義,萬能的internet

實驗環境:CentOS 6.9與CentOS7.4

聲明:以下英文純屬個人翻譯,英文B級,歡迎糾正,以下内容純屬個人了解,并沒有對錯,隻是參考,盜版不糾,才能有限,希望不誤人子弟為好。

1、為何要檔案系統的配額

通常一個作業系統管理一些磁盤分區,但是普通使用者能進行寫write操作的空間隻有/home下它的家目錄而已。

是以在一些需要給普通使用者配置設定用空間的時候最好能夠給其配置設定單獨的分區,便于進行檔案系統配額的操作,

那麼這裡我們就能看出,配額的操作是針對檔案系統本身而言。

什麼是檔案系統就是管理檔案的一種格式。

是分區挂載後才能展現的特點。

2、檔案配額的基本原理

檔案系統的配置

-首先為使用者配置設定一個獨立的分區。

-其次分區挂載為其設定其啟用配額的特性,可以有針對使用者和針對組的

-然後設定配額規則

-測試配額效果

3、檔案配額的工具

以下是quota軟體包提供的一些quota的功能

進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理

在xfs上可以使用xfs_quota工具做配額。

4、檔案配額的配置流程

問:

針對lq使用者以及stale組。限制1G的空間和1萬的檔案數。

答:

1)建立檔案系統,首先如果/home是在/的分區上的話,需要獨立出來。給使用者一個獨立的空間,

fdisk /dev/sdb //為其配置設定一個/dev/sdb1

blkid /dev/sdb1 //檢查分區是否劃分成功

2) 對/dev/sdb1進行格式化配置設定檔案系統後,添加配額功能,并挂載在某個目錄比如/mnt/home

mkfs.ext4 /dev/sdb1

mount /dev/sdb1 /mnt/home

備份/home下的目錄, 以及提醒使用者不要進行操作。

tar cf /opt/home.tar /home

cp -a /home/ /mnt/home

du -h /home /mnt/home 

rm -rf /home/

vi /etc/fstab 

uuid=xx /home ext4 usrquota,grpquota 0 0

mount -a -o remount /dev/sdb1

umount /mnt/home

3)配置配額規則

初始化quota資料庫quotacheck -c ug(看你在fstab中設定的是什麼) filesystem(裝置名或挂載點(挂載點應該更直覺)) 

然後開啟配合功能 quotaon

編輯配額規則

edquota wang(使用者)

edquta group lq (組)

對block和inode進行控制,有soft和hard選項,允許的警告和最大值,

4)測試配額規則是否生效

5、錯誤資訊

進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理

這裡遇到典型問題了,因為selinux的存在不允許你進行操作。

setenforce 0 可以先關閉,當然要去/etc/selinux配置。

進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理
進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理

第一個圖檔是沒有使用管理者權限的提示資訊

第二個圖檔是和下面quotacheck -cug /home一樣的提示資訊,說已經存在配額資料庫,

進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理

這裡說明我們建立配額需要針對是的挂載點。

進階檔案系統管理_學習筆記一、QUOTA,檔案配額二、RAID,磁盤陣列三、LVM,邏輯卷管理

這裡說的是已經有配額的資料庫了,你可以關閉或者使用-f 強制建立

RAID的類别有0,1,5,6,10,01,4(已淘汰),7(太專業),50(太費錢)

3種實作方式,軟raid,主機闆自帶raid控制器,專業raid插卡控制器。

1、為何做raid

因為普通磁盤分區沒有備援性,而且raid還能提升資料的讀取寫入速度。是以在伺服器上普遍采用這種技術手段。

2、raid的基本原理

太專業的咱也說不清楚,就是将多塊硬碟放在一起做一個array。如果有N個磁盤,N>=2,那麼raid1,我們隻需要去考慮對N/2做操作就行。總之我們對raid後的裝置做操作就行,至于底層那是Raid幹的事情,我們不需太多關心,我們隻要知道我們要對raid後的裝置做哪些操作即可。

raid1:将N/2的硬碟做備份盤

raid0:沒有備份盤,資料分成chrunk大小,分别寫入到各個磁盤,沒備援性,

raid5:針對0的沒有備援性進行改進,一開始是4,一部分磁盤都用來做校驗碼的存放,結果因為讀寫頻繁經常損壞,是以,5上校驗碼分布在各個磁盤中

raid6:對5的進一步改進,因為5上隻有一組校驗碼,是以如果壞了2個磁盤,也不行,6上有2組校驗碼,這樣子壞的幾率會降低,但是磁盤的使用率就會變成N-2/N

raid10:經常使用的,将2個做一個raid1之後然後各個raid1之間再做raid0

raid 01:先将2個磁盤做radi0,然後在将raid0,做成raid1

raid50:現将磁盤做成raid5,然後多個raid5再做成raid0。如果是小檔案chrunk,再chrunk嗎?會很浪費空間的吧。這個不知道是個什麼機制呢?

3、軟raid的配置流程:

1)首先要有至少2個分區或者裝置,分區要指定其type為fd

2)然後建立raid裝置

3)指定raid級别和那些磁盤分區做raid。

4)然後對raid裝置做正常格式化挂載等操作

增删改查:

md:multiple devices子產品

mdadm:md的manage。

格式:

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

mdadm和vi類似也有幾種模式,常見的有:

assemble,build,create,follow|mirror,grow,manage,misc,Incremental Assembly,auto-detect

用選項來表示模式:

-A

-B 

-C:--create 建立一個新的array

-F:--flow,--mirror ,指定mirror模式

-G:--grow,改變有效的array的大小和狀态

如果選項跟--add --fail --remove --add-spare 這樣子的預設就是mange模式

-I:--incremental

--auto-detect:

每個模式下都有自己的子選項:

我們可以通過mdadm -ABC ... --help 去擷取相關選項所支援的子選項。

對于create,build,grow的選項:

對于assemble的選項

對于manage的選項

對于misc的選項

對于mirror的選項

說實話我們現在很少用到軟raid,但是要聽過,了解過。等真正用的時候不至于是摸瞎的一個狀态即可。

增加:

-C -a -l -n -x -c

删除:

--mange

-f:--fail

-r: --remove

修改:

--manage -a

-S

-G 

-n: 增加陣列中磁盤數

-l:更改陣列的優先級

檢視:

-D

-Ds

cat /proc/mdstat

1、為何有邏輯卷。

LVM三個概念

PV:phsycial volume

VG: volume group

LV: logic volume

因為當我們正常的分區指定後,如果想要擴充其大小是個很麻煩的事情,而lvm的概念就很好的解決了這個問題。而且lvm還有snapshot的特性。

我們拿粉筆來做舉例,可能不是準确

以前是粉筆都在倉庫裡

現在是粉筆要交給教務處配置設定,然後每個年級組去申請,然後每個班去申請。

粉筆就是pv,年級就是vg,lv就是班級

,snapshot是不允許挂載的。

2、邏輯卷的配置流程

增改删查。

建立:

pvcreate:

要拿倉庫裡的成箱粉筆打上pv标記給教務處

vgcreate:

從教務處選擇有pv标記的成箱粉筆,放到年級組裡去,成箱粉筆pv都規劃為單份粉筆PE

lvcreate:

從年級組vg中領取多少份(PE)的粉筆。

pvcreate

vgextend

lvextend

lvreduce

pvremove

vgremove

lvremove

pvs

pvdisplay

vgs

vgdisplay

lvs

lvdisplay

3、snapshot快照的特性

我們在vmware中的磁盤就是一種邏輯卷的格式為vmdk。我們可以在虛拟機目錄下建立多個虛拟磁盤作為pv使用。扯遠了

快照的原理。

就是提供一個在VG的空間建立一個LV作為snapshot使用,其隻是提供一個通路lv的一個入口,如果可以挂載的話,你會發現snaphshot上的資料和lv上一緻,但是snapshot的空間并不大,因為隻有當你lv上的資料和你建立snapshot lv的那一瞬間的資料不一緻,或者說你建立快照那一瞬間會把磁盤上inode table發一份到snapshot上,是以快照建立就是一瞬間的事情,然後你lv上如果你要修改檔案,比如執行vi等操作的時候,會把檔案先備份一份到snaoshot上,然後lv上才會去修改, 這個當你修改大檔案的時候就能感覺出來。當恢複快照的時候,其實就是恢複這些被修改過的檔案到其原來的地方去把覆寫,這裡注意的就是是覆寫,你lv在snapshot之後的修改的資料都會被覆寫,你要考慮清楚是之前的資料重要還是修改後的資料重要的問題,。

既然snapshot是提供了一個入口到源lv上,那麼我們可以通過挂載snapshot 進入到lv去中修改lv中的資料,是以mount要隻讀,而我們建立快照的目的并不是去通路lv中的資料,是以在6上可以進行挂載snapshot,而在7上。

snapshot的概念就是當我們對這個邏輯卷中的資料進行操作時,會将建立快照時的系統環境放到snapshot中。當我們執行恢複快照的時候會将系統環境恢複到備份快照的時候的lv的樣子。這裡通常用于恢複你覺得現在的東西沒有之前資料重要的時候進行操作,因為這個操作是覆寫操作。

資料的存儲于恢複其實是個重要的問題。是以養成檔案、系統備份的習慣是必不可少的。

建立快照,恢複快照。當恢複快照的時候自動删除快照,删除快照的方式和删除邏輯卷的方式一樣,centos6下快照可以被挂載,7下預設不允許挂載。

lvcreate -s -L size -n name -p r (屬性隻讀) /dev/vg(卷組名)/lv(邏輯卷)(指定為哪個源LV建立此刻的snapshot)

注意的問題是:

1、增加pv的時候如果增加的是分區,當然實際很少會是,需要給分區指定system id 為 8e。

2、壓縮的時候記得先解除安裝挂載備份資料,實際很少會去壓縮空間

3、我們挂載的是lv邏輯卷裝置,fstab中用的是lv uuid,實際裝置生成的裝置是/dev/dm-xxx.,/dev/mapper/x_y,/dev/x/y啥的都是軟連結到/dev/dm-xxx上的。

Q:那我們結合實際綜合下,我現在伺服器上有8個硬碟槽位,然後做raid幾,然後是建立什麼作業系統,要求後期可擴充。單塊硬碟為500G

規劃:

主機闆為UEFI引導,分區表格式為GPT,

作業系統為Centos7.4

8塊500G硬碟,做raid6,2塊恢複盤。具體看你什麼業務了。我也不知道怎麼分,我們假設這個樣子。後期可擴充我們使用lvm分區格式。

具體劃分為。

8塊硬碟實際可用空間為4*500G 就是2T,我們給ROOT配置設定1個T,給boot配置設定1G,給home配置設定500G,給 其他配置設定500G .

名稱規劃:

裝置名

test

主機名

raid 卡,選擇1-6為資料盤,7,8為備份盤

然後設定raid裝置名為md_test

那先在我們做lvm

建立/dev/md_test 為pv。

然後建立vg,lv,lv就是分區,然後建立檔案系統。

實際中常用 raid(raid卡)+lvm(邏輯卷管理)+ext4,ceph(分布式檔案系統

本文轉自 lajifeiwomoshu 51CTO部落格,原文連結:http://blog.51cto.com/lajifeiwomoshu/2047349