第11章,磁盤存儲和文件系統學習筆記


更多內容請點擊:node

Linux學習從入門到打死也不放棄,徹底筆記整理(持續更新,求收藏,求點贊~~~~) 
linux

https://blog.51cto.com/13683480/2095439ios


筆記整理開始時間:2018年4月24日11:25:33vim

 

第11章,磁盤存儲和文件系統windows

        

本章內容:centos

        磁盤結構安全

        分區類型網絡

        管理分區數據結構

        管理文件系統app

        掛載設備

        管理虛擬內存

        RAID管理

        LVM管理

        LVM快照

        

設備文件:

        磁盤設備的設備文件命名:/dev/dev-file

        SCSI,SATA,SAS,IDE,USB:        /dev/sd*

        虛擬磁盤:/dev/vd

        不一樣磁盤標識:a-z,aa,ab...

               /dev/sda,/dev/sdb,...

        同一設備上的不一樣分區:1,2.。。

               /dev/sda1,/dev/sda5

        設備號碼:     major number       標識設備類型

                            minor number      標識同一類型下的不一樣設備

        磁盤存儲術語:

               head              磁頭

               track              磁道

               cylinder  柱面

               sector            扇區

        CHS:

               採用24bit尋址

               其中前10位表示cylinder,中間8位表示head,後面6位表示sector

               最大尋址空間8GB

        LBA:(Logical block addressing)

               LBA是一個整數,經過轉換成CHS格式完成磁盤具體

               LBA採用48位尋址

               最大尋址空間128PB

        

使用分區空間步驟:

        分區,建立文件系統,掛載        

               設備識別

               設備分區

               建立文件系統

               標記文件系統

               在/etc/fstab文件中建立條目

               掛載新的文件系統

        

磁盤分區:

        爲何分區:

               優化I/O性能

               實現磁盤空間配額限制

               提升修復速度

               隔離系統和程序

               安裝多個OS

               採用不一樣文件系統

        

        分區:

               兩種分區方式:MBR,GPT

               MBR:      Mater Boot Record,  1982年,使用32位表示扇區數,分區不超過2T

                            如何分區:按柱面

                            0磁道0扇區:512bytes

                                                  446bytes:     boot loader

                                                  64bytes:       分區表

                                                         16bytes:標識一個分區

                                                  2bytes: 55  aa

                            4個主分區; 3主分區+1擴展分區(n個邏輯分區)

               

               GPT: GUID(Globals Unique ldentifiers)partition table  支持128個分區

                            使用64位尋址,支持8Z(512byte/block)64Z(4096byte/block)

                            使用128位UUID (Universally  Unique ldentifier)表示磁盤和分區GPT分區表

                                    自動備份在頭和尾兩份,並有CRC校驗位

                             UEFI(統一擴展固件接口)硬件支持GPT,是操做系統啓動

               

管理分區:

        列出塊設備:        lsblk

               

        建立分區使用:

               fdisk       建立MBR分區

               gdisk             建立GPT分區

               parted           高級分區操做

        partprode-從新設置內存中的內核分區表版本

               

parted 命令:

        ps:    parted的操做都是實時生效的,當心使用

        用法:

               parted /dev/sdb mklabel gpt|msdos

               parted /dev/sdb print

               parted /dev/sdb mkpart primary 1 200 (默認M)

               parted /dev/sdb rm 1

               parted -l       列出分區信息

               

fdisk

        fdisk -l [-u] [dvice]

        

        fdisk /dev/sdb 管理分區

               子命令:

                     p    分區列表

                     t      更改分區類型

                     n     建立新分區

                     d    刪除分區

                     u     轉換單位

                     w     保存並退出

                     q     不保存並退出

                     v     校驗分區

                     o     格式化爲 msdos  新分區

                     g     格式化爲 gpt  新分區

                    

        查看內核是否已經識別新的分區:

cat /proc/partitions

 

partx:         

        centos6通知內核從新讀取硬盤分區表

               新增分區:

                     partx -a  /dev/sd*

               刪除分區:

                     partx -d --nr M-N  /dev/sd*

        

        centos5,7:使用 partprobe

partprobe [/dev/sd*]

               

        文件系統:

               文件系統是操做系統用於明確存儲設備或分區上的文件的方法和數據結構;即在

               存儲設備上組織文件的方法。操做系統中負責管理和存儲的文件信息的軟件結構

               稱爲文件管理系統,簡稱文件系統。

               從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件

               存儲並對存入的文件進行保護和檢索的系統。具體的說,它負責爲用戶創建文件

               存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮,加密

               等。

               支持的文件系統:

/lib/modules/`uname-r`/kernel/fs

 

        文件系統類型:

                     linux文件系統:ext2(Extended file system),ext3,ext4,xfs(SGI),btrfs(Oracle)

                                                  reiserfs,jfs(AIX),swap

                     光盤:iso9660

                     windows:FAT32 exfat ntfs

                     unix:ffs ufs jfs2

                     網絡文件系統:NFS CIFS

                     集羣文件系統:GFS2,OCFS2

                     分佈式文件系統:fastdfs,ceph,moosefs,mogilefs,glusterfs,lustre

                      RAW:未經處理或者未經格式化產生的文件系統

               

               文件系統分類:

                     根據是否支持日誌‘journal’功能:

                            日誌型文件系統:ext3 ,ext4,xfs..

                             非日誌型文件系統:ext2,vfat(fat32)

                     文件系統的組成部分:

                            內核中的模塊:ext4,xfs,vfat

                             用戶空間的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat

                     linux的虛擬文件系統:VFS

                     查看支持的文件系統

cat /proc/filesystems

 

建立文件系統:

        

mkfs命令:

               mkfs.fs_type /dev/sd*

                     ext4

                     xfs

                     btrfs

                     vfat

               mkfs -t fs_type /dev/sd*

                     -L 'LABEL':設定卷標

mke2fs:    ext系列文件系統專用管理工具

                     -t {ext2|ext3|ext4}==  mkfs.ext2,3,4

                     -b  {1024|2048|4096}

                     -L  'LABLE'

                     -i #  爲數據空間中每多少個字節建立一個inode,此大小不該該

                     小於block的大小

                     -N #      指定分區中建立多少個inode

                     -l           一個inode記錄佔用的磁盤空間大小,

                     -m #      默認5%,爲管理人員預留空間佔總空間的百分比

                     -O FEATURE...:      啓用指定特性

                     -O ^FEATURE..      關閉指定特性

                    

        文件系統標籤:

               指向設備的另外一種方法:

               與設備無關

blkid:         

               blkid:塊設備屬性信息查看

               blkid /dev/sda1

                     -U UUID        根據指定的uuid  來查找對應的設備

                     -L Label  根據指定的label來查找對應的設備

e2lable:          管理ext系列文件系統的label

                     e2lable device  [lable]

findfs:      查找分區

                     findfs [options] LABEL  =label      等於  blkid -L

                     findfs [options]  UUID=uuid         等於 blkid -U

               PS:

                     在centos7上,GPT分區,默認會多一個PARTUUID

                     建立文件系統以後纔會有UUID

 

uuidgen         生成uuid                    

 

tune2fs:

        從新設定ext系列文件系統可調整參數的值

               -l                    查看指定文件系統(分區)超級塊信息;super  block

                     沒法查看xfs系統

               -L ‘LABEL'   修改卷標

               -m #              修改預留給管理員的空間百分比

               -j                   將ext2升級爲ext4 (加上journal功能)

               -O                  文件系統屬性啓用或禁用,-O ^has_journal

               -o                  調整文件系統的默認掛載選項, -o ^acl

               -U UUID        修改UUID號

        

dumpe2fs:

        塊分組管理,32768

        -h   查看超級塊信息,不顯示分組信息

               

        文件系統檢測和修復:

                             常發生於死機或者非正常關機以後

                             掛載爲文件系統標記爲「no clean」

                             注意:必定不要再掛載狀態下修復

fsck.fs_type

               -p   自動修復錯誤

               -r    交互式修復錯誤

               fs_type必定要與分區上文件系統類型相同

e2fsck: ext系列文件專用的檢測修復工具

               -y: 自動回答yes

               -f           強制修復

               

        掛載,     nount   

                      umount

               掛載:將額外文件系統與根文件系統某現存的目錄創建起關聯關係,進而使得此

                             目錄做爲其餘文件訪問入口的行爲

               卸載:     解除此關聯關係的過程

               把設備關聯掛載點: mount point

               卸載時:可以使用設備,也可使用掛載點

               掛載點下原有文件在掛載完成後會被臨時隱藏

               掛載點目錄通常爲空

        

mount命令:

        掛載方法

               mount device mount-point

               mount:         經過查看/etc/mtab文件顯示當前已掛載的全部設備

               mount [-fnrsvw] [-t vfstpe] [-o options] device dir

                      device;指明要掛載的設備;

                            1.     設備文件;例如/dev/sda5

                            2.     卷標; -L  'LABEL',

                            3.     UUID,       -U 'UUID'

                            4.     僞文件系統名稱: proc sysfs  devtmpfs configfs

                     dir:       掛載點

                             事先存在,建議使用空目錄

                             進程正在使用中的設備沒法被卸載

                             

               -t vsftype        指明要掛載的設備上的文件系統類型

               -r                  readonly,只讀掛載

               -w                 read and write  讀寫掛載

               -n                 不更新/etc/mtab, mount不可見 centos7無效

               -a                   自動掛載全部支持自動掛載的設備(定義在了/etc/fstab文件中,

                                    且掛載選項中有auto功能)

               -L ’LABEL‘ 以卷標爲指定掛載設備

               -U ’UUID‘ 以UUID指定要掛載的設備

               -B --bind       綁定目錄到另外一個目錄上

        

        查看內核追蹤到的一掛載的全部設備

               cat /proc/mounts

               

        mount -o       掛載文件系統的選項,多個選項使用逗號分隔

               async             異步模式

               sync       同步模式

               atime/noatime              包含目錄和文件

               diratime/nodiratime      目錄的訪問時間戳

               auto/noauto                 是否支持自動掛載,是否支持-a選項

               exec/noexec                  是否支持將文件系統上運行應用程序

               dev/nodev                    是否支持在此文件系統上使用設備文件

               suid/nosuid                  是否支持suid和sgid權限

               remount                      從新掛載

               ro                                 只讀

               rw                                讀寫

               user/nouser                  是否容許普通用戶掛載此設備, /etc/fstab使用

               acl                                啓用此文件系統上的acl功能

               loop                      使用loop設備

        defaults:       至關於rw,suid,dev,exec,auto,nouser,async

 

findmnt

        findmnt mount-point | device      查看掛載狀況

lsof

        lsof mount-point                        查看正在訪問指定文件系統的進程     

fuser

        fuser -v mount-point                 查看正在訪問指定文件系統的進程     

        fuser -km mount-point                      終止全部正在訪問指定的文件系統的進程

 

umount:取消掛載

        umount device

        umount mount-point

        

               

/etc/fstab

               配置文件系統體系

               被mount,fsck和其餘程序使用

               系統重啓時保留文件系統體系

               能夠在設備欄使用文件系統卷標

               使用mount -a 命令掛載/etc/fstab中的全部文件系統

 

               每行定義一個要掛載的文件系統

               1     要掛載的設備或僞文件系統

                            設備文件

                            LABEL:LABEL=""

                            UUID:      UUID=

                            僞文件系統名稱:proc sysfs

               2     掛載點

               3     文件系統類型:

               4     掛載選項:defaults,acl。。。

               5     轉儲頻率:

                            0     不作備份

                            1     天天備份

                            2     每隔一天轉儲

               6     自檢次序:

                            0     不自檢

                            1     首先自檢,通常只有rootfs才用1

                             

處理交換文件和分區:

               交換分區是系統RAM的補充

               基本設置包括

                     建立交換分區或者文件

mkswap         使用mkswap  寫入特殊簽名

                     在/etc/fstab文件中添加適當的條目

                     使用swapon -a 激活交換空間

 

swapon   device                    啓用交換分區

               -a                          激活全部的交換分區

               -s                          查看已經使用的swap分區

               -p priority:   指定優先級

               /etc/fstab:              pri=value

swapoff   device                    禁用交換分區

               -a                          禁用全部交換分區

               

        swap的優先級:

               能夠指定swap分區0-32676的優先級,值越大優先級越高

               若是用戶沒有指定,那麼核心會自動給swap指定一個優先級,這個優先級從

                      -1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級

                     -1

               先添加的swap 的缺省優先級比較高,除非用戶本身指定一個優先級,而用戶

               指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數)

               優化性能:分佈存放,高性能磁盤存放

        

將文件當作swap使用:

               dd if=/dev/zero of=p1 ps=1M count=2048     生成文件

               mkswap p1           格式化

               swapon p1            開啓交換分區

                     寫入/etc/fstab

                     swapon  -a

               

文件掛載到目錄上:

               mkfs.ext4 p1   

               mount -o loop p1 /dir         centos6掛載時須要加-o loop 選項

                                                         centos7能夠直接掛載        

        /data/p1  /mnt/app1 ext4 loop 0  0   fstab文件書寫格式

                                                         

        losetup -a                                  查看loop設備表明的源文件路徑

        ls /dev/loop*                        查看全部loop設備

                                                         centos6默認只有8個loop設備,centos7不限制

        mknod /dev/loop8 b 7 8                    centos6手動生成loop文件來掛載                                                      

        losetup /dev/loop8 p2                 loop8和文件作映射

        mount /dev/loop8 /data/app3            此時掛載就不須要-o了

        vim /boot/grub/grub.conf           centos6配置文件,可修改最大loop數量

                                                                在kernel行尾添加  max_loop=100,重啓生效

        

        

掛載目錄到目錄

        fstab書寫格式:

               /root  /mnt/root  none bind 0 0

               

移動介質:

               掛載意味着使外來的文件系統看起來如同是主目錄樹的一部分

               訪問時,介質必須被掛載

               摘除時,介質必須被卸載

               按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等)

               掛載點一般在/media 或 /mnt  下

               

使用光盤:

               在圖形環境下自動啓動掛載/run/media/user/label

               不然就必須被手工掛載

                     mount /dev/cmrom  /mnt/

eject        卸載或彈出磁盤

               建立ISO文件

                     cp /dev/sr0  /root/centos6.iso

mkisofs -r -o file.iso  /dir

               此命令生成的iso文件,好比centos6光盤,能夠作yum源,可是不能作引到盤

               使用centos官方提供的mkdvdiso.sh  能夠生成引到光盤

        mkdvdiso.sh  /dir  centos6.iso

               生成的iso文件須要掛載以後才能夠查看

        

wodim -v -eject  centos.iso

                    

                    

掛載usb介質

               查看usb設備是否識別

lsusb

               被內核探測爲scsi設備

                     /dev/sda* /dev/sdb*  或相似的設備

               在圖形環境中自動掛載

                     圖標在【計算機】窗口中建立

                     掛載在/run/media/user/label

               手動掛載:

                     mount /dev/sd*  /mnt/

                    

經常使用工具:

 

df: 文件系統空間佔用等信息的查看工具

        df [option]..[file]..

               -H          以1000爲單位

               -T           文件系統類型:

               -h           human-readable

               -i            inodes instead of  blocks 查看inode編號使用狀況

               -P          以Posix兼容的格式輸出

                                    設備名很長的狀況下 1行顯示

                    

du:       查看某目錄整體空間佔用狀態

        du [option]..[dir]..

               -h           human-readable

               -s           summary  

               --max-depth=#    最大深度

 

hexdump:   查看二進制文件

        hexdump -C /dev/sda -n512

        

mknod:              生成塊設備文件

        mknod /data/sdA b 8 1

        mknod /data/zefofile c 1 5

        

cp -a   /dev/sda /data  -a  能夠複製塊設備

        

dd:          convert and copy a file

        用法:

               dd if=/PATH/FROM/SRC of=/PATH/TO/DEST

                     bs=# size       count=# number

                            ibs=size         一次讀size個byte

                            obs=size        一次寫入size個byte

                            cbs=size        一次轉化size個byte

                     skip=numbem      從開頭忽略num個ibs大小的塊

                      seek=num            從開頭忽略num個obs大小的塊

                     count=n               只拷貝n個記錄

                    

                     conv=            用指定的參數轉換文件

                            ascii        轉換EBCDIC  爲  ASCII

                            ebcdic            轉換ASCII爲EBCDIC    

                            lcace              把大寫字符轉換爲小寫字符

                            ucace             把小寫字符轉換爲大寫字符

                            nocreat          不建立輸出文件

                            noerror          出錯時不中止

                            notrunt          不截短輸出文件

                            sync       把每一個輸入塊填充到ibs字節,不足部分用nul空字符補齊

               

        示例:

               備份MBR:

                     dd if=/dev/sda  of=/data/mar.bak bs=1 count=512

               破壞分區表,保留MBR中的bootloader:

                     dd if=/dev/zero of=/dev/sda  bs=1 count=64 seek=446

               

               有一個大與2K的二進制文件fileA。如今想從第64個字節位置開始讀取,須要讀

               取的大小是128Byts。又有fileB,  想把上面讀取到的128Bytes寫到第32個字節開

               始的位置,替換128Bytes,      

                     dd if=fielA of=fileB bs=1  count=128 skip=63 seek=31 conv=notrunc

                    

               備份:

                     dd if=/dev/sdx  of=/dev/sdy      

                            將本地/dev/sdx整盤備份到/dev/sdy

                     dd if=/dev/sdx  of=/path/file

                            將/dev/sdx全盤數據備份到指定路徑的file文件

                     dd if=/dev/sdx | gzip >  /path/file.gz

                            備份/dev/sdx 全盤數據,並利用gzip壓縮,保存到指定路徑

               恢復:

                     dd if=/path/file  of=/dev/sdx

                             將備份文件恢復到指定盤

                     gzip -dc /path/file.gz    | dd of=/dev/sdx

                             將壓縮的備份文件恢復到指定盤

                             

               拷貝內存資料到硬盤

                     dd if=/dev/mem  of=/root/mem.bin bs=1024

                             將內存裏的數據拷貝到root目錄下的mem.bin文件

               拷貝光盤數據:

                    

                    

               銷燬磁盤數據:

                     dd if=/dev/urandom  of=/dev/sda1

                             

               獲得最恰當的block size

               

               測試硬盤讀寫速度

               

               修復硬盤:

                     dd if=/dev/sda  of=/dev/sda

                             當硬盤較長時間(好比1,2)年放置不使用後,磁盤上會產生消磁點。

                      當磁頭讀到這些區域時會遇到困難,並可能致使I/O錯誤。當這種狀況

                      影響到硬盤的第一個扇區時,可能致使硬盤報廢,上邊的命令有可能使

                      這些數據起死回生,且這個過程是安全高效的。

                    

練習:

        一、建立一個2G的文件系統,塊大小爲2048byte,預留1%可用空間,文件系統

               ext4,卷標爲TEST,要求此分區開機後自動掛載至/test目錄,且默認有acl掛載

               選項

               echo -e "n\np\n2\n\n+2G\nw\n" |fdisk /dev/sdb

               mkfs.ext4 -L TEST -m 1 -b 2048 /dev/sdb2

               echo -e "LABEL=TEST /test\text4\tdefaults,acl\t 0\t 0" >>  /etc/fstab

               mkdir /test

               mount -a

               lsblk

                     └─sdb2   8:18    0    2G  0 part /text

               

        二、寫一個腳本,完成以下功能:

               (1) 列出當前系統識別到的全部磁盤設備

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

               不然,則顯示最後一個磁盤上的空間使用信息

                      13 echo "device  checking"

                      14 sleep 1

                      15 lsblk

                      16

                      17 num=$(lsblk |grep '^sd'|wc  -l)

                      18 last=$(lsblk |grep '^sd'|tail -1|cut -d' '  -f1)

                      19

                      20 if [ $num = 1 ]; then  

                      21          echo "There have just one device"

                      22          sleep 1                                                                    

                      23          df -h | grep $last

                      24          exit 5

                      25 else     

                      26          echo "There have $num device,the last one is: $last  "

                      27          sleep 1

                      28          df -h |grep $last

                      29          exit 10

                      30 fi

                      31

        三、將CentOS6的CentOS-6.8-x86_64-bin-DVD1.iso和CentOS-6.8-x86_64-bin-DVD2.iso兩個文件,合併成一個CentOS-6.8-x86_64-Everything.iso文件,

               並將其配置爲yum源 

                     cp /mnt/cd1   /data/centos6

                     cp /mnt/cd2   /data/centos6

                     mkisofs -r -o  CentOS-6.8-x86_64-bin-DVD2.iso  /centos6

                    

 

RAID:

        什麼是RAID   

                            RAID,Redundant Arrays of Inexpensive(Independent)  Disks

                             1988年由加利福利亞大學伯克利分校

                             多個磁盤合成一個陣列來提供更好的性能,冗餘,或者二者都提供

               提升IO能力:            

                            磁盤並行讀寫

               提升耐用性:

                            磁盤冗餘來實現

               級別:

                             多塊磁盤組織在一塊兒的工做方式有所不一樣

               RAID實現的方式:

                            外接式磁盤陣列:       經過擴展卡提供適配能力

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

                                    安裝OS前在bios裏配置

                            軟件RAID:                經過OS實現

                    

        RAID級別:

               RAID-0   條帶卷,strip

                            讀、寫性能提高

                            可用空間N*min

                            無容錯能力

                            最少磁盤數2,2+

                    

               RAID-1   鏡像卷,mirror

                             讀性能提高,寫性能略有降低

                            可用空間1*min

                            有冗餘能力

                            最少磁盤數2,2N

               RAID-2,3

                             

               RAID-4    多塊數據盤異或運算值存於專用校驗盤

                            讀寫提高,有容錯

                             校驗盤壓力大容易壞

               RAID-5

                             4的改進型,全部輪流充當校驗盤

                            讀,寫性能提高

                            可用空間(N-1)*min

                             有容錯能力:容許最多1塊磁盤損壞

                            最少磁盤數3,3+

               RAID-6

                            有2塊校驗盤

                            讀寫性能提高

                            可用空間:(N-2)*min

                             有容錯能力:容許最多2塊磁盤損壞

                            最少磁盤數:4,4+

               RAID-10

                             多塊磁盤先兩兩組成RAID-1,在組成RAID-0

                            讀、寫性能提高

                            可用空間:N*min/2

                             有容錯能力:每組鏡像最多隻能壞一塊

                            最少磁盤數:4,4+

               RAID-01

                             多塊磁盤先分紅兩組作RAID-0,再組成RADI-1

                            讀,寫性能提高

                            可用空間:N*min/2

                            容錯,RAID1的兩邊不能同時壞硬盤

                            最少磁盤數4,4+

               RAID-50

                            多塊磁盤先實現RAID5,再組合成RAID-0

                            比RAID-10讀寫提高大,每組raid5裏 最多容許壞一塊硬盤

               JBOD:   

                            just a Bunch of  disks

                             功能:將多塊磁盤的空間合併一個大的連續空間使用

                                    可用空間 sum

                                    不能容錯

               RAID-7

                             能夠理解爲一個獨立存儲計算機,自身帶有操做系統和管理工具,

                             能夠獨立運行,理論上性能最高的RAID模式

        經常使用級別:

               RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD

               

軟RAID:

               mdadm:  爲軟RAID提供管理界面

               爲空餘磁盤添加冗餘

               結合內核中的md(multi  devices)

               RAID設備可命令爲/dev/md0,/dev/md1...

               

mdadm:

        語法格式:

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

        支持的RAID級別:LINEAR,0,1,4,5,6,10

                     mode 模式:

                            建立       -C

                            裝配       -A

                            監控       -F

                            管理       -f -r  -a

                     <raiddevice>:                     rainname  /dev/md#

                      <component-devices> :      任意塊設備,磁盤,分區等

               

               -C          建立模式

                     -n#               使用#個塊設備來建立此RAID

                     -l#                 指明要建立的RAID的級別

                     -a{yes|no}      自動建立目標RAID設備的設備文件

                     -c    chunk-size     指明塊大小,單位K

                     -x    指明空閒盤的個數

               

               -D          顯示raid的詳細信息

                     mdadm -D  /dev/md*

               

               管理模式:

                     -f           標記指定磁盤爲損壞

                     -a           添加磁盤

                     -r          移除磁盤

               觀察md的狀態:

cat /proc/mdstat

        

               使用mdadm建立並定義RAID設備

                     mdadm -C /dev/md0 -a yes -l  5 -n 3 -x 1 /dev/sdb{1,2,3,5}

               用文件系統對RAID設備進行格式化

                     mkfs.ext4  /dev/md0

               測試RAID設備

                     mdadm -D|--detail  /dev/md0

               增長新的成員

                     mdadm -G /dev/md0 -a  /dev/sdb1

               模擬磁盤故障

                     mdadm /dev/md0 -f  /dev/sdb1

               移除磁盤

                     mdadm /dev/md0 -r  /dev/sdb1

               

        軟RAID管理

               mdadm -D -s >> /etc/mdadm.conf

                     生成配置文件

               mdadm -S /dev/md0

                     中止設備

               mdadm -A -s /dev/md0

                      激活設備,若是沒有生成配置文件,中止以後會沒法激活

               mdadm -R /dev/md0

                     強制啓動

               mdadm --zero-superblock /dev/sdb1

                     刪除磁盤的raid信息

               

        PS:

               RAID-0 不支持空閒盤

               raid5,格式化raid,或者空閒盤頂替以後,會有一段時間的 clean, degraded, recovering 時間,

               有一個盤顯示 spare rebuilding 的狀態

               使用-n4 -a 添加磁盤 會添加成raid盤,沒法添加成空閒盤

 

練習:

        1:建立一個可用空間爲1G的RAID1設備,文件系統爲ext4,有一個空閒盤,

               開機可自動掛載至/backup目錄

                 fdisk 分出3個1G分區/dev/sdc{1,2,3}     類型fd

                     mdadm -C /dev/md0 -a yes  -l1 -n2 -x1 /dev/sdc{1,2,3}

                     mkfs.ext4  /dev/md0

                     mdadm -D -s >>  /etc/mdadm.conf

                     blkid

                     echo "UUID=''\t  /backup\text4\tdefaults\t0\t0" >>/etc/fstab

                     mkdir  /dev/md0

                     mount  -a

                    

        2:建立由三塊硬盤組成的可用空間爲2G的RAID5設備,要求其chunk大小爲

               256k,文件系統爲ext4,開機可自動掛載至/mydata目錄

                     fdisk 分出4個1G分區  /dev/sdb{1,2,3,4} 類型fd

                     mdadm -C /dev/md1 -a yes  -l5 -n3 -x1 -c 256 /dev/sdb{1,2,3,4}

                     mkfs.ext4  /dev/md1

                     mdadm -D -s >>  /etc/mdadm.conf

                     blkid  

                     echo  "UUID=''\t/madata\text4\tdefault\t 0\t0 "

                     mkdir  /mydata

                     mount  -a

                    

LVM:邏輯卷管理器

               容許對捲進行方便操做的抽象層,包括從新設定文件系統的大小

               容許在多個物理設備間從新組織文件系統

                     將設備指定爲物理卷

                      用一個或者多個物理捲來建立一個娟阻

                     物理卷是用固定大小的物理區域(PE,Physical Extent)來定義的

                      在物理捲上建立的邏輯卷是由物理區域PE組成的

                     可在邏輯捲上建立文件系統

               LVM:      Logical Volume  Manager, Version:2

               dm:       device mapper :將一個或多個底層設備組織成一個邏輯設備的模塊

               設備名:/dev/dm-#

               軟連接:

                             /dev/mapper/VG-LV_NAME

                                    /dev/mapper/vol0-root

                             /dev/VG_NAME/LV_NAME

                                    /dev/vol0/root

 

        LVM能夠彈性的更改LVM的容量

               經過交換PE來進行資料的轉換,將原來LV內的PE轉移到其餘的設備中以下降LV

               的容量,或將其餘設備中的PE加到LV中以加大容量

               

pv管理工具

 

        pv

                     pvs                             簡要pv信息顯示

                     pvdisplay                            詳細pv信息顯示

                     pvcreate /dev/device    建立pv

                     pvmove                              轉移pv上的內容到其餘pv

                            pvmove  /dev/sd*

                     pvremove                           刪除pv,

                            須要先執行    vgreduce /dev/vg  /dev/sd*

                                                  pvremove /dev/sd*

                                           

 

VG管理工具

 

        vg  

                     vgs                       顯示卷組

                     vgdisplay              顯示vg詳細信息

                     vgcreate        建立卷組

                            -s    指定PE大小

                     vgreduce       卷組減容

                            vgreduce /dev/vg  /dev/sd*

                     vgextend       卷組擴容

                            vgextend /dev/vg  /dev/sd*

                     vgremove             卷組刪除

                     vgchange             修改卷組屬性,便於遷移

                            -a n 遷出

                            -a y 遷入

                     vgexport        輸出卷組,便於遷移

                     vgimport       輸入卷組

                     vgrename      vg更名

                            vgrename /dev/vg  name

lv管理工具

 

        lv

                     lvcreate          建立邏輯卷lv

                            -L #        size,直接指定大小M/G

                            -l #,%{FREE|PVS|VG} PE數量,%FREE %VG  表示空閒百分比%和總百分比%

                            -n name        指定lv名

                     lvs                        查看lv

                     lvdisplay        查看lv詳細信息

                     lvremove       刪除lv

                     lvrename       lv更名

                            lvrename /dev/vg/lv  name

                     lvconvert       恢復邏輯卷快照

                             --merge

                     lvextend        

                            -L [+]size      擴展、擴展到size       

                            -l [+]num  50%FREE/VG 擴展、擴展到num個PE大小   

                     lvreduce               lv減容

                            -L  [-]size

                            -l [-]num       50%FREE/VG

 

               pv刪除:

                     pvmove  /dev/sdb1

                     vgreduce /dev/vg1  /dev/sdb1

                     pvremore  /dev/sdb1

                                                                                            

               lv擴容:

                     lvextend  -L +5G /dev/vg/lv      擴展邏輯卷

                     resize2fs /dev/vg/lv            擴展文件系統

lvresize    lvresize -r -l +100%FREE /dev/vg1/lv1    此命令會將文件系統和lv一塊兒擴展

 

               lv減容:

                     umount /dev/vg/lv                            取消掛載

e2fsck            e2fsck -f /dev/vg/lv                    強制檢查

resize2fs resize2fs /dev/vg/lv  5G           縮減文件系統 centos6

xfs_growfs                                                               centos7

                     lvreduce -L 5G  /dev/vg/lv

                                                                

                     PS:   lv縮減或者刪除必須取消掛載

                             lv擴展以後須要擴展文件系統

                             lv縮減以前需縮減文件系統

        

               跨主機遷移卷組

                            源計算機上:

                                   1.     umount全部卷組上的邏輯卷

                                   2.     vgchange -a n vg

                                                  lvdisplay

                                   3.     vgexport vg

                                                  pvscan    查看pv使用狀況

                                           vgdisplay

                                    拆下硬盤

                            目標計算機上:

                                   4.     安裝硬盤,並 vgimport  vg

                                   5.     vgchange -ay vg

                                   6.     mount全部卷組上的邏輯卷

               

               邏輯卷管理器快照:

                             快照是特殊的邏輯卷,它是在生成快照時存在的邏輯卷的準確拷貝

                             對於須要備份或者複製的現有數據臨時拷貝以及其餘操做作來講,快照

                            是最合適的選擇

                             快照只有在它們和原來的邏輯卷不一樣時纔會消耗空間

                                    在生成快照時會分配給它必定的空間,但只有在原來的邏輯卷或者

                                    快照有所改變的時候纔會使用這些空間

                                    當原來的邏輯卷中有所改變時,會將舊的數據複製到快照中

                                    快照中只含有原來的邏輯卷中更改的數據或者自生成快照後的快照中

                                    更改的數據

                                    創建快照的卷大小隻須要原始邏輯卷的15%-20%就夠了,也可使用

                                    lvextend放大快照

                             快照就是將當時的系統信息記錄下來,就好像照相通常,若未來有任何數據

                             改動了,則原始數據會被移動到快照區,沒有改動的區域擇優快照區的文件

                            系統共享

                             因爲快照區與原來的LV公用不少PE的區塊,所以快照與被快照的LV必須在同一個

                             VG中,系統恢復的時候的文件數量不能高於快照區的實際容量

                    

               使用LVM快照:

               

               爲現有的邏輯卷建立快照:

                     lvcreate -l 64 -s -n  data-snapshot -p r /dev/vg/lv

                            -s|--snapshot                    指明快照lv

                            -p|--permission  {r|rw}  指明權限,是讀寫仍是隻讀

               

               掛載快照:     

                     mkdir -p  /mnt/snap

                     mount -o ro  /dev/vg/data-snapshot /mnt/snap

               

               恢復快照:

                     umount  /dev/vg/data-snapshot

                     umount  /dev/vg/data

                     lvconvert --merge  /dev/vg/snapshot

               

               刪除快照:

                     umount  /mnt/snap

                     lvremove  /dev/vg/data-snapshot

               

練習:

        一、建立一個至少有兩個PV組成的大小爲20G的名爲testvg的VG;要求PE大小

               爲16MB, 然後在卷組中建立大小爲5G的邏輯卷testlv;掛載至/users目錄

               fdisk /dev/sdb     /dev/sdb1 /dev/sdb2 10G  8e

               pvcreat /dev/sdb{1,2}

               vgcreat -s 16M /dev/vg0 /dev/sdb{1,2}

               lvcreat -L 5G -n testlv /dev/vg0

               mkfs.ext4 /dev/vg0/testlv

               mkdir /users

               mount /dev/vg0/testlv /users

               

        二、新建用戶archlinux,要求其家目錄爲/users/archlinux,然後su切換至

               archlinux用戶,複製/etc/pam.d目錄至本身的家目錄

               useradd -d /users/archlinux

               su archlinux

               cp -r /etc/pam.d ~

                    

        三、擴展testlv至7G,要求archlinux用戶的文件不能丟失

               lvextend -L 7G /dev/vg0/testlv

               resize2fs /dev/vg0/testlv

        

        四、收縮testlv至3G,要求archlinux用戶的文件不能丟失

               umount /dev/vg0/testlv

               e2fsck -f /dev/vg0/testlv

               resize2fs /dev/vg0/testlv 3G

               lvreduse -L 3G /dev/vg0/testlv

               mount /dev/vg0/testlv /users

               

        五、對testlv建立快照,並嘗試基於快照備份數據,驗證快照的功能  

               lvcreate -L 1G -s -n snap1 /dev/vg0/testlv1

               umount /users

               lvconvert --merge /dev/vg0/snap1

               

 

筆記整理完成時間:2018年4月28日20:18:25

相關文章
相關標籤/搜索