磁盤級文件系統管理

Linux磁盤及文件系統管理node

硬盤介紹windows

1.硬盤的接口類型  讀寫速度網絡

IDE(ata):並口,133MB/s異步

SCSI:並口,Ultrascsi320, 320MB/S, UltraSCSI640, 640MB/Sasync

SATA:串口,6gbps分佈式

SAS:串口,6gbpside

USB:串口,480MB/s工具


2.每一種硬盤接口接的硬盤數量:oop

                             並口:同一線纜能夠接多塊設備;ui

                            IDE:兩個,主,從

                            SCSI:寬帶:16-1    窄帶:8-1

                            串口:同一線纜只能夠接一個設備;

3.硬盤:機械硬盤,固態硬盤;

機械硬盤:track:磁道      sector:扇區,512bytes    cylinder:柱面  分區劃分基於柱面:

4.平均尋道時間:5400rpm, 7200rpm, 10000rpm, 15000rpm





Linux的哲學思想:一切皆文件-------設備文件

設備類型:

塊(block):隨機訪問,數據交換單位是「塊」;

字符(character):線性訪問,數據交換單位是「字符」;


設備文件:FHS  /dev     設備文件:關聯至設備的驅動程序;設備的訪問入口;

設備號:major:主設備號,區分設備類型;用於標明設備所須要的驅動程序;

minor:次設備號,區分同種類型下的不一樣的設備;是特定設備的訪問入口;

mknod命令:make block or character special files  建立設備文件的命令

mknod  [OPTION]...  NAME  TYPE  [MAJOR  MINOR]

-m MODE:建立後的設備文件的訪問權限;

舉例:mknod -m 755 www b 5 1

磁盤的標識:

IDE: /dev/hd[a-z]   例如:/dev/hda, /dev/hdb

SCSI, SATA, USB, SAS: /dev/sd[a-z]

分區標識:/dev/sda#:  /dev/sda1, ...

注意:CentOS 6和7通通將硬盤設備文件標識爲/dev/sd[a-z]#

引用設備的方式:設備文件名    卷標     UUID



磁盤分區表:MBR, GPT   

磁盤分區表介紹-----MBR

MBR:0 sector 在磁盤的第0號扇區 Master Boot Record

分爲三部分:

第一部分:446bytes:bootloader, 程序,引導啓動操做系統的程序;

第二部分:64bytes:分區表,每16bytes標識一個分區,一共只能有4個分區;

          4主分區   3主1擴展:   n邏輯分區   

第三部分:2bytes:MBR區域的有效性標識;55AA爲有效;

主分區和擴展分區的標識:1-4     邏輯分區:5+

課外做業:GPT

      在使用fdisk創建分區時,咱們最大隻能創建2TB大小的分區,若是你的磁盤(陣列)大於2TB,只能經過劃分多個分區的方法才能充分利用磁盤容量,但對於使用大於2TB分區(好比5TB的分區)的朋友就會遇到問題了,要突破這個限制;咱們先來了解下MBR(Master Boot Record)和GPT(GUID Partition Table).

GPT分區方法:

1.  parted /dev/sda  選擇分區的磁盤

2.  mklabel  gpt 將MBR磁盤格式化爲GPT

3.  mkpart primary 0 100  建立一個100M主分區

4.  mkpart primary 0  -1  將整塊磁盤分紅一個分區

5.  print 打印當前分區  而後quit退出  

注:mklabel msdos 將GPT磁盤轉化成爲MBR磁盤

分區建立工具:parted是GPT使用, sfdisk爲ext系列硬盤使用;

磁盤分區

fdisk命令:

一、查看磁盤的分區信息:

fdisk -l [-u] [device...]:列出指定磁盤設備上的分區狀況;

二、管理分區  fdisk  device

fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用於不一樣的管理功能;全部的操做均在內存中完成,沒有直接同步到磁盤;直到使用w命令保存至磁盤上;

                經常使用命令:

n:建立新分區

d:刪除已有分區

t:修改分區類型

l:查看全部已經ID

w:保存並退出

q:不保存並退出

m:查看幫助信息

p:顯示現有分區信息

注意:在已經分區而且已經掛載其中某個分區的磁盤設備上建立的新分區,內核可能在建立完成後沒法直接識別;

查看內核有沒有識別分區:cat  /proc/partitions

通知內核強制重讀磁盤分區表:CentOS 5:partprobe [device]

   CentOS 6,7:partx -a [device]  或者  kpartx -af [device]







建立文件系統mkfs工具使用介紹


1.  數據以及文件系統類型介紹

建立文件系統:格式化:低級格式化(分區以前進行,劃分磁道)、高級格式化(分區以後對分區進行,建立文件系統)

文件系統裏元數據區,數據區

元數據區:文件元數據:inode (index node)大小、權限、屬主屬組、時間戳、數據塊指針

符號連接文件:存儲數據指針的空間當中存儲的是真實文件的訪問路徑;

設備文件:存儲數據指針的空間當中存儲的是設備號(major, minor);

連接文件:訪問同一個文件不一樣路徑;

      硬連接:指向同一個inode的多個文件路徑;

  特性:(1) 目錄不支持硬連接;

        (2) 硬連接不能跨文件系統; 

(3) 建立硬連接會增長inode引用計數;       建立:ln  src  link_file

     符號連接:指向一個文件路徑的另外一個文件路徑;

  特性:

        (1) 符號連接與文件是兩人個各自獨立的文件,各有本身的inode;對原文件建立符號連接不會增長引用計數;

        (2) 支持對目錄建立符號連接,能夠跨文件系統;

(3) 刪除符號連接文件不影響原文件;但刪除原文件,符號指定的路徑即不存在,此時會變成無效連接;  注意:符號連接文件的大小是其指定的文件的路徑字符串的字節數;

建立:ln -s  src link_file


1.1  VFS: Virtual File System

Linux的文件系統: ext2(無日誌功能), ext3, ext4, xfs, reiserfs, btrfs

光盤:iso9660

網絡文件系統:nfs, cifs

集羣文件系統:gfs2, ocfs2

內核級分佈式文件系統:ceph

windows的文件系統:vfat, ntfs

僞文件系統:proc, sysfs, tmpfs, hugepagefs

Unix的文件系統:UFS, FFS, JFS

交換文件系統:swap

用戶空間的分佈式文件系統:mogilefs, moosefs, glusterfs

2. 文件系統管理工具mkfs  文件系統驅動:由內核提供

                    文件系統箮理工具:由用戶空間的應用程序提供

2.1 建立文件系統的工具mkfs

mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat, ...


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

mke2fs [OPTIONS]  device

-t {ext2|ext3|ext4}:指明要建立的文件系統類型

mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4

-b {1024|2048|4096}:指明文件系統的塊大小;

-L LABEL:指明卷標;

-j:建立有日誌功能的文件系統ext3;

mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3

-i #:bytes-per-inode,指明inode與字節的比率;即每多少字節建立一個Indode; 

-N #:直接指明要給此文件系統建立的inode的數量;

                 -m #:指定預留的空間,百分比;

 -O [^]FEATURE:以指定的特性建立目標文件系統; 


2.2檢測及修復文件系統的工具fsck

fsck.ext2, fsck.ext3, ...

     fsck的做用:因進程意外停止或系統崩潰等 緣由致使定稿操做非正常終止時,可能會形成文件損壞;此時,應該檢測並修復文件系統; 建議,離線進行; 

ext系列文件系統的專用工具:

       e2fsck [OPTIONS]  device

-y:對全部問題自動回答爲yes; 

-f:即便文件系統處於clean狀態,也要強制進行檢測;

-t fstype:指明文件系統類型;fsck -t ext4 = fsck.ext4

-a:無須交互而自動修復全部錯誤;

-r:交互式修復;


2.3查看其屬性的工具

        dumpe2fs, tune2fs

       dumpe2fs命令:顯示ext系列文件系統的屬性信息  dumpe2fs  [-h] device


2.4調整文件系統特性:tune2fs  注意:塊大小建立後不可修改;

tune2fs [OPTIONS] device

-l:查看超級塊的內容;

-j:ext2 --> ext3;修改指定文件系統的屬性:

-L LABEL:修改卷標;

-m #:調整預留空間百分比;

-O [^]FEATHER:開啓或關閉某種特性;

        -o [^]mount_options:開啓或關閉某種默認掛載選項 例如acl(開啓)^acl 關閉

內容補充板塊

1.blkid命令:用來查看塊設備的uuid和label

blkid device

blkid  -L LABEL:根據LABEL定位設備

blkid  -U  UUID:根據UUID定位設備 

2.Windows沒法識別Linux的文件系統; 所以,存儲設備須要兩種系統之間交叉使用時,應該使用windows和Linux同時支持的文件系統:fat32(vfat); 

# mkfs.vfat device





        swap文件系統

Linux上的交換分區必須使用獨立的文件系統;且文件系統的System ID必須爲82;

     1.建立swap設備:mkswap命令

mkswap [OPTIONS]  device

-L LABEL:指明卷標

-f:強制

     2.交換分區的啓用和禁用:

swapon  [OPTION]  [DEVICE]

-a:定義在/etc/fstab文件中的全部swap設備;

禁用:swapoff DEVICE



文件系統的使用:

首先要「掛載」:mount命令和umount命令

什麼是掛載?

        根文件系統這外的其它文件系統要想可以被訪問,都必須經過「關聯」至根文件系統上的某個         目錄來實現,此關聯操做即爲「掛載」;此目錄即爲「掛載點」;

掛載點:mount_point,用於做爲另外一個文件系統的訪問入口;

(1) 事先存在;

(2) 應該使用未被或不會被其它進程使用到的目錄;

(3) 掛載點下原有的文件將會被隱藏;

mount命令:mount  [-nrw]  [-t vfstype]  [-o options]  device  dir

   命令選項:-r:readonly,只讀掛載; 

     -w:read and write, 讀寫掛載; 

      -n:默認狀況下,設備掛載或卸載的操做會同步更新至/etc/mtab文件中;-n用於禁止此特性;

      -t vfstype:指明要掛載的設備上的文件系統的類型;多數狀況下可省略,此時mount會經過blkid來判斷要掛載的設備的文件系統類型;

      -L LABEL:掛載時以卷標的方式指明設備;mount -L LABEL dir

      -U UUID:掛載時以UUID的方式指明設備;mount -U UUID dir

       -o options:掛載選項

   sync/async:同步/異步操做;

                      atime/noatime:文件或目錄在被訪問時是否更新其訪問時間戳;

                              diratime/nodiratime:目錄在被訪問時是否更新其訪問時間戳;

remount:從新掛載; 

acl:支持使用facl功能;

# mount -o acl  device dir 

# tune2fs  -o  acl  device 

ro:只讀 

rw:讀寫 

dev/nodev:此設備上是否容許建立設備文件;

exec/noexec:是否容許運行此設備上的程序文件;

auto/noauto:

user/nouser:是否容許普通用戶掛載此文件系統;

suid/nosuid:是否容許程序文件上的suid和sgid特殊權限生效;

擴展板塊:

1.一個使用技巧能夠實現將目錄綁定至另外一個目錄上,做爲其臨時訪問入口;

      mount --bind  源目錄  目標目錄

2.查看當前系統全部已掛載的設備:# mount   # cat  /etc/mtab    # cat  /proc/mounts

3.掛載光盤:mount  -r  /dev/cdrom  mount_point

光盤設備文件:/dev/cdrom, /dev/dvd

4.掛載U盤:事先識別U盤的設備文件;

掛載本地的迴環設備:# mount  -o  loop  /PATH/TO/SOME_LOOP_FILE   MOUNT_POINT 

umount命令:umount  device|dir

注意:正在被進程訪問到的掛載點沒法被卸載;

查看被哪一個或哪些進程所佔用:

              # lsof  MOUNT_POINT

      # fuser -v  MOUNT_POINT

       終止全部正在訪問某掛載點的進程:

      # fuser  -km  MOUNT_POINT




              文件系統開機啓動 /etc/fstab文件 

每行定義一個要掛載的文件系統及相關屬性:

            6個字段:

(1) 要掛載的設備:

設備文件;

LABEL

UUID

僞文件系統:如sysfs, proc, tmpfs等

(2) 掛載點 

swap類型的設備的掛載點爲swap;

(3) 文件系統類型;

(4) 掛載選項

defaults:使用默認掛載選項;

若是要同時指明多個掛載選項,彼此間以事情分隔;

defaults,acl,noatime,noexec

(5) 轉儲頻率

0:從不備份;

1:天天備份;

2:每隔一天備份;

(6) 自檢次序

0:不自檢;

1:首先自檢,一般只能是根文件系統可用1;

2:次級自檢

...

mount  -a:可自動掛載定義在此文件中的所支持自動掛載的設備;

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

練習:一、建立一個10G的分區,並格式化爲ext4文件系統; 

(1) block大小爲2048;預留空間爲2%,卷標爲MYDATA;

(2) 掛載至/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;

(3) 可開機自動掛載;

     二、建立一個大小爲1G的swap分區,並啓動之;

相關文章
相關標籤/搜索