高級文件系統的管理

接上一篇文章http://www.www58058.com/40874

移動介質

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

    訪問前、介質必須被掛載

    摘除時,介質必須被卸載

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

    掛載點通常在/media或/mnt下

使用光盤

    在圖形環境下自動啟動掛載/run/media/<user>/<label>

    否則就必須被手工掛載

        mount /dev/cdrom /mnt/

    eject命令卸載或彈出磁盤     eject -t命令安裝或彈入光盤

blob.png

在圖形界面下,設置CD/DVD選項,鏈接使用物理驅動器,然后執行eject命令,光驅會彈出

    創建ISO 文件

        cp /dev/cdrom /root/centos7.iso 生成的ISO文件,掛載之后可以正常使用

[root@localhost ~]# cp /dev/sr0 /testdir/centos7.iso
[root@localhost ~]# file /testdir/centos7.iso 
/testdir/centos7.iso: # ISO 9660 CD-ROM filesystem data 'CentOS 7 x86_64' (bootable)
[root@localhost ~]# mkdir /mnt/iso
[root@localhost ~]# mount /testdir/centos7.iso /mnt/iso/
mount: /dev/loop1 is write-protected, mounting read-only

blob.png

        mkisofs -r -o /root/etc.iso /etc 把etc目錄打包成ISO文件  掛載之后就可以使用了  跟上面的步驟一致

    刻錄光盤

        wodim –v –eject centos.iso

掛載USB介質

    被內核探測為SCSI 設備

        ? /dev/sdaX 、/dev/sdbX 、或類似的設備文件

    在圖形環境中自動掛載

        ? 圖標在[ 計算機] 窗口中創建

        ? 掛載在/run/media/<user>/<label>

    ? 手動掛載

    ? mount /dev/sdb1 /mnt

常見工具

    內存空間使用狀態:

        free [OPTION]

            -m: 以MB 為單位

            -g: 以GB 為單位

blob.png

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

        df [OPTION]… [FILE]…

            -H 以1000為單位

blob.png

            -T 文件系統類型

            -h: human-readable

            -i :inodes instead of blocks

            -P: 以Posix 兼容的格式輸出

    查看某目錄總體空間占用狀態:

        du [OPTION]… DIR

            -h: human-readable

            -s: summary

工具dd

    dd 命令:convert and copy a file

    用法:

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

        bs=# :block size, 復制單元大小

        count=# :復制多少個bs

        of=file 寫到所命名的文件而不是到標準輸出

        if=file 從所命名文件讀取而不是從標準輸入

        bs=size 指定塊大?。仁鞘莍bs 也是obs)

        ibs=size 一次讀size 個byte

        obs=size 一次寫size 個byte

        cbs=size 一次轉化size 個byte

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

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

        count=n 只拷貝n 個記錄

        conv=conversion[,conversion…] 用指定的參數轉換文件。

    轉換參數:

         ascii 換 轉換 EBCDIC 為 為 ASCII

        ebcdic 換 轉換 ASCII 為 為 EBCDIC

         block 轉換為長度為 cbs 的記錄,不足部分用空格填充。

        unblock 替代cbs 長度的每一行尾的空格為 新 行

        lcase 把大寫字符轉換為 小寫 字符

        ucase 把小寫字符轉換為 大寫 字符

        swab 交換輸入的每對字節。

        noerror 出錯時 不 停止

        notrunc 不截短輸出文件。

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

    磁盤拷貝

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

    備份MBR

dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

    破壞MBR 中的bootloader

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

    有二進制文件fileA,size>2K 。現在想從第64個字節位置開始讀取,需要讀取的大小是128Byts 。又有fileB,想把上面讀取到的128Bytes寫到第32 個字節開始的位置,替換128Bytes ,請問如何實現?

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

    備份:

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

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

dd if=/dev/sdx of=/path/to/image

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

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

            備份/dev/sdx 全盤數據,并利用gzip 工具進行壓縮,保存到指定路徑

    恢復:

 dd if=/path/to/image of=/dev/sdx

            將備份文件恢復到指定盤

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

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

    拷貝內存資料到硬盤

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

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

    從光盤拷貝iso 鏡像

 dd if=/dev/cdrom of=/root/cd.iso

            拷貝光盤數據到root 文件夾下,并保存為cd.iso 文件

    銷毀磁盤數據

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

            利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/sda1 將無法掛載,創建和拷貝操作無法執行。

    得到最恰當的block size

 dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
    dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
    dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
    dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通過比較dd 指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size 大小

    測試硬盤讀寫速度  

  dd if=/root/1Gb.file bs=64k | dd of=/dev/null
    dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度

    修復硬盤

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

當硬盤較長時間(比如1 ,2 年)放置不使用后,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致I/O 錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。




高級文件系統管理

配置配額系統

    綜述

    ? 在內核中執行

    ? 以文件系統為單位啟用

    ? 對不同組或者用戶的策略不同

    根據塊或者節點進行限制

    ? 執行軟限制(soft limit)

    ? 硬限制(hard limit)

    初始化

    ? 分區掛載選項:usrquota 、grpquota

    ? 初始化數據庫:quotacheck

 為用戶設定配額

    執行

    ? 開啟或者取消配額:quotaon 、quotaoff

    ? 直接編輯配額:edquota username

    ? 在shell 中直接編輯:

        setquota usename 4096 5120 40 50 /foo

    ? 定義原始標準用戶

        edquota -p user1 user2

報告配額狀態

    報告

    ? 用戶調查:quota

    ? 配額概述:repquota

    ? 其它工具:warnquota

什么是RAID

    RAID:Redundant Arrays of Inexpensive(Independent)Disks

    1988 年由加利福尼亞大學伯克利分校(University of California-Berkeley)“A Case for Redundant Arrays of Inexpensive Disks”。

    多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供

RAID

    提高IO 能力:

        磁盤并行讀寫

    提高耐用性;

        磁盤冗余來實現

    級別:多塊磁盤組織在一起的工作方式有所不同

    RAID實現的方式:

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

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

        安裝OS 前在BIOS里配置

    軟件RAID:通過OS實現

RAID的級別

    RAID-0:條帶卷,strip

    RAID-1: 鏡像卷,mirror

    RAID-2

    ……

    RAID-5

    RAID-6

    RAID-10

    RAID-01

    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 混合類型級別

    RAID-10

        讀、寫性能提升

        可用空間: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

軟RAID

   mdadm :為軟RAID 提供管理界面

    為空余磁盤添加冗余

    結合內核中的md(multi devices)

    RAID 設備可命名為/dev/md0、/dev/md1、/dev/md2、/dev/md3

軟RAID的實現

    mdadm :模式化的工具

    命令的語法格式:mdadm [mode] <raiddevice> [options] <component-devices>

    支持的RAID 級別:LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10

    模式:

        創建:-C

        裝配: -A

        監控: -F

        管理:-f, -r, -a

    <raiddevice>: /dev/md#

    <component-devices>: 任意塊設備

     -C: 創建模式

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

        -l # :指明要創建的RAID 的級別

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

        -c CHUNK_SIZE: 指明 塊大小

        -x #: 指明空閑盤 的個數

    -D :顯示raid 的詳細信息;

          mdadm -D /dev/md#

    管理模式:

        -f: 標記指定磁盤為損壞

        -a: 添加磁盤

        -r: 移除磁盤

    觀察md 的狀態:

        cat /proc/mdstat

軟RAI配置示例

    使用mdadm 創建并定義RAID 設備

        #mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

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

        #mke2fs -j /dev/md0

    測試RAID 設備

    使用mdadm 檢查RAID 設備的狀況

        #mdadm –detail|D /dev/md0

    增加新的成員

        #mdadm –G /dev/md0 –n4 -a /dev/sdf1

軟RAID 測試和修復

    模擬磁盤故障

        #mdadm /dev/md0 -f /dev/sda1

    移除磁盤

        #mdadm /dev/md0 –r /dev/sda1

    從軟件RAID 磁盤修復磁盤故障

        ? 替換出故障的磁盤然后開機

        ? 在備用驅動器上重建分區

        ? #mdadm /dev/md0 -a /dev/sda1

    mdadm 、/proc/mdstat 及系統日志信息

軟RAID 管理

    生成配置文件:mdadm –D –s >> /etc/mdadm.conf

    停服務:mdadm –S /dev/md0

    激活:mdadm –A –s /dev/md0 激活

    強制啟動:mdadm –R /dev/md0

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

小練習:創建一個可用空間為1G 的RAID1 設備,文件系統為ext4,有一個空閑盤,開機可自動掛載至/backup

先創建三個分區大小都為10G的分區,然后把硬盤類型改為raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128K /dev/sdc{1,2} /dev/sdb2    #創建raid1 一個備用盤,塊大小128k
mdadm -D /dev/md0            #顯示raid的詳細信息
cat /proc/mdstat             #查看raid組創建的信息
mkfs.ext4 /dev/md0            #格式化raid組md0磁盤
mkdir /backup                 #創建一個文件夾
vim /etc/fstab               #將掛載的信息寫到配置文件中
UUID=bd0df058-4d13-40cf-b635-cb7390e7ba25  /backup      ext4     defaults 0 0
mount -a                      #重新讀取配置文件,是配置生效
mdadm -Ds /dev/md0 > /etc/mdadm.conf        #保存配置文件

 一些相關命令的總結

raid5實現

1、fdisk /dev/sdb

/dev/sdb1

dd if=/dev/sdb of=/dev/sdd bs=1 count=512

2、mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1 創建raid

3、mkfs.ext4 /dev/md0

4、vim /etc/fstab

/dev/md0 /mnt/raid ext4 defaults 00

5、mount -a

6、mdadm -D /dev/md0  查看狀態

cat /proc/mdstat

7、mdadm /dev/md0 -f /dev/sdb1 模擬失敗

8、mdadm /dev/md0 -r /dev/sdb1 刪除成員

9、mdadm /dev/md0 -a /dev/sdb1 添加成員

10、mdadm -Ds /dev/md0 > /etc/mdadm.conf

11、umount /dev/md0;mdadm -S /dev/md0

清除raid

1、umount /dev/md0;mdadm -S /dev/md0

2、mdadm –zero-superblock /dev/sdx 清除成員raid信息

3、fdisk /dev/sdx 刪除成員分區

4、vim /etc/fstab

5、rm /etc/mdadm.conf

原創文章,作者:舊城以西,如若轉載,請注明出處:http://www.www58058.com/42885

(0)
舊城以西舊城以西
上一篇 2016-09-08
下一篇 2016-09-08

相關推薦

  • linux用戶,組及權限管理

      寫在前面: 本博客詳解命令如下: useradd, userdel,usermod, passwd,  chage, groupadd,  groupdel, groupmod, gpasswd ,newgrp, chsh, id, su,  chmod,  chowm,  chgrp, &nb…

    Linux干貨 2015-12-19
  • 設計模式(四)原型模式Prototype(創建型)

    1.   概述 我們都知道,創建型模式一般是用來創建一個新的對象,然后我們使用這個對象完成一些對象的操作,我們通過原型模式可以快速的創建一個對象而不需要提供專門的new()操作就可以快速完成對象的創建,這無疑是一種非常有效的方式,快速的創建一個新的對象。 例子1:孫悟空拔下一嘬猴毛,輕輕一吹就會變出好多的孫悟空來。 例子2:寄個快遞下面是一個郵寄快…

    Linux干貨 2015-06-25
  • 搭建yum倉庫的FTP服務器

    搭建centos7ftp服務

    2017-12-02
  • 系統基礎之shell腳本編程詳解3(函數)

    shell腳本編程詳解3:    在前兩節我們分別介紹了shell腳本編程的基礎和循環,判斷的知識,今天我們分享腳本的另一種用法,函數. 概論:     函數function是由若干條shell命令組成的語句塊,實現代碼重用和模塊化編程。    它與shell…

    Linux干貨 2016-08-22
  • Linux管理目錄和文件命令

     管理目錄命令: pwd:顯示當前目錄 Cd:   改變當前目錄 ls:    查看目錄下的內容 rmdir: 刪除目錄 管理文件命令: cat: 查看文件內容 cp: 復制文件內容 grep:在文件中查找某字符 touch:創建文件 rm&nbsp…

    2016-03-05
  • Linux文件權限之facl

    1、什么是facl         facl(file access control list)文件訪問控制列表,主要目的是在原有的u,g,o之外,另一層讓普通用戶能控制賦權給另外的用戶或組的機制;       &nbs…

    Linux干貨 2016-09-19
欧美性久久久久