歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux 下的邏輯卷(LVM)簡介

linux 下的邏輯卷(LVM)簡介

日期:2017/3/3 16:15:21   编辑:關於Linux

Linux 系統中的每一個分區都是一個文件系統。

文件系統就是指對存在物理空間上的文件的一種管理軟件(個人認為)

Linux 2.4 內核以後,開始支持大量的文件系統;

日志文件系統; ext3 ReiserFS XFSJFS

Linux2.4內核以後支持的文件系統有; JFS , ReiserFs, ext, ext2, ext3, , ISO9660, XFS, Minx, MSDOS, UMSDOS, VFAT, NTFS, HPFS, NFS, SMB, SysV, PROC 等等

Ext2/ext3 采用block+ innode 方式來存放文件

Ext2/ext3 有一個空間被稱為超級塊

(superblock) 存放文件系統的原數據

包括;卷標名, block數, inode 數 等等

Inode是存放文件元數據,包括文件權限,屬性,更改時間等數據

Inode 就是一個索引節點, 這個inode紀錄文件的屬性,位置等信息。

每個inode都有一個號碼,稱為索引節點號(inode號)

Linux 文件系統將索引節點號和文件名同時保存在目錄中。所以目錄只是將文件的名稱和他的索引點號結合在一起的一張表,目中的每個文件名和索引點號稱為一個連接。

一個文件只有一個對應的inode號,但是一個inode可以有多個文件名與其對應。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問他。

書上說ext2不是日志文件系統

從ext2 變成ext3不需要格式化,用tune2fs 就可以

從ext3 變成ext2 可以不用作任何的改動

Ext3 特性;

1. 高效性; 非法關機後恢復ext3文件系統只要10秒左右

2. 數據完整性;避免非法關機對數據完整性的破壞

3. 文件系統的速度; 對磁盤驅動器讀寫進行了優化

4. 數據的轉化; ext2-ext3, ext3-ext2

5. 多種日志模式;對所有數據進行日志紀錄模式,只對metadata進行日志紀錄,而不對數據進行日志紀錄

Data=journal 所有數據日志紀錄模式

Data=writeback 對metadata日志紀錄模式

提示metadata是定義文件系統中的數據,即數據中的數據

Root可以根據實際的工作情況來定義,在系統的工作速度和數據完整性來選擇

將一個新的分區格式化成ext3文件系統

# mke2fs -j /dev/hda8

將ext2 轉換成ext3文件系統

# tune2fs -j /dev/hda9

提示; 將ext2文件系統轉換成ext3時,不需要將分區卸載。直接轉換就可以。不要忘記把/etc/fstab 裡的ext2改成ext3

用e2fsck 修復ext3文件系統

1. # umount /dev/hda8 先卸載該分區.

2.#e2fsck -fy /dev/hda8 修復該分區

Reiserfs文件系統

1997 年 hans reiser 把reserfs文件系統在網上公布

Reserfs 比ext2fs要快的的多

當前reserfs 只能在intel結構體系上使用

Reiserfs 文件系統一直被用於在高端的unix系統上

Reiserfs 特點;

1. 先進的日志機制

Reiserfs 日志機制在每個實際數據要修改之前把相應的日志寫入到磁盤空間,這樣提高數據的安全性

2. 高效的磁盤利用率

Reiserfs對一些小的文件不分配inode。而是將這些小文件打包,存放在同一個磁盤塊中。而其他的文件系統是每個文件都要占用一個block塊。這意味著如果有1000個小文件,那麼就要占用1000個block。這樣非常浪費磁盤空間。

3. 獨特的搜索方式

Reserfs基於平衡樹(balanced tree)搜索,這種方式的速度要比ext2快的多。平衡樹是一種高效的算法。

4. 支持海量硬盤

Reserfs可以管理上百G的數據。Rerserfs最大支持文件系統的尺寸是16TB。這非常適合企業級應用。

5. 優異的性能

Reserfs 文件系統啟動X -windows的速度比ext2快2倍

文件的附加屬性

# chattr +〔AadijS〕 filename 設置文件的附加屬性

# lsattr filename 查看文件的附加屬性

A; 當文件被改變時,文件的更改時間不變

a; 只能向該文件追加內容,不可以更改原內容

i; 文件不可以刪除, 重命名, 改變內容

j; 在ext3文件系統中,次文件一定被寫入日志

S; 當文件被改動,此改動會同步寫入文件系統

將原ext2轉換升級成ext3文件系統

# tune2fs -j /dev/hda1 這是直接轉換

# mke2fs -j /dev/hda2 這是格式化轉換

常見的文件系統

Minix ; linux第一個支持的文件系統,比較古老,現在每人用了

ISO9660; 標准的cdrom 文件系統

NFS ; 是sun公司推出的網絡文件系統,准許多台計算機共享一個文件系統

提示; redhat linux默認是不支持ntfs 文件系統的。我們可以自己編輯kernel來讓系統支持ntfs,但是可能會對數據造成損壞

常用創建文件系統工具

Mkfs 可以用於創建各種文件系統,由-t參數來指定

Mke2fs 創建ext2/ext3文件系統

# Mk2fs -j /dev/hda2

文件系統的使用

設備;就是一個具體的文件系統,可以用設備名或卷標名來表示

掛載點:必須是一個目錄。當一個目錄下有文件時,則在該文件系統被掛載後,原文件暫時無法訪問。直到當前掛載的文件被卸載以後,才能繼續訪問

Mount命令參數

掛載時使用mount命令

基本格式; mount 〔-參數〕 〔設備名〕 〔掛載點〕

Mount -t 指定文件系統的類型

Umount 卸載文件系統

Mount -o loop disk1.iso 掛載.iso 文件

Mount -o 選項指定掛載文件系統時的選項。有些時候也可以/etc/fstab來指定。常用的有

ro ; 以只讀的方式掛載

rw ; 以讀寫的方式掛載

nouser ; 使一般的用戶無法掛載設備

user ; 可以讓一般的用戶掛載設備

配置/etc/fstab

/etc/fstab 這個文件是文件系統的掛載信息

當mount一個文件系統時如果給出的參數不全,系統會從/etc/fstab文件中讀取參數來補全

當系統啟動時,系統會根據這個/etc/fstab這個文件中的配置信息來自動加載文件系統

這個文件同時,還可以被fsck, dump, quotaon, swapon等程序所使用

fstab 文件的格式

fs_spec fs_file fs_type fs_options fs_dump fs_pass

/dev/hda1 /boot ext2 defaults 1 1

fs_spec ; 這個字段表示要加載的文件系統所在的設備或遠程文件系統

fs_file; 表示文件系統的掛載點

fs_type; 文件系統的類型

說明;對於swap設別,該字段為none; 對於加載目錄名中包含空格的情況,用40來表示空格

Fs_options; 因為在給指定的設備加載文件系統時,需要使用特定的參數,多個參數是由逗號分開的。對於大多數的系統都是default就可以滿足需要了

加載文件系統可以指定的參數;

ro ; 以只讀的方式加載

sync; 不對該設備的寫操作進行緩沖處理,這可以防止在非法關機時破壞文件系統和數據的完整性。但是這樣卻降低了計算機的工作效率

user ; 准許普通用戶可以掛載這個文件系統

quota ; 強制的在該文件系統上進行磁盤配額

noauto ; 不在使用mount -a 命令 (在系統啟動時) 加載文件系統

fs_dump ; 該選項被“dump”命令使用來檢查一個文件系統應該以多快的頻率進行轉存,如果不需要轉存就設置為0

fs_pass ; 這個字段表示fsck命令用來決定在啟動時需要被掃描文件系統的順序,根文件系統“/” 對應該字段的值為1,其他文件系統應該為2。如果該文件系統不需要在啟動時掃描,則設置為0

檢查當前系統中掛載的文件系統

# mount 使用mount命令

# cat /etc/fstab 使用/etc/fstab 文件

# cat /proc/mounts 使用內存鏡像文件

卷標的含義

由於設備的文件名可能在硬盤結構發生變化時而改變,因此redhat linux 對ext2文件系統使用卷標來掛載和卸載

卷標紀錄在ext2/ext3文件系統的超級塊中(superblock)

e2label 命令可以查詢和更改ext2文件系統的卷標名

# cat /etc/fstab

LABEL=/ / ext3 default 1 1

/dev/hda7 /usr ext3 default 1 1

第二的意思就是說,把/dev/hda7這個分區掛載到/usr這個目錄上

第一行沒有指明分區,意思是把LABEL(卷標)為/ 的分區mount到/ 分區上。 這樣寫的好處就是當你的硬盤從主板上的IDE1(hda)移動到IDE2(hdc)上的時候,系統仍然可以自動的掛載正確的分區

手動添加新分區,自定義卷標

# e2label /dev/hdax /new

# mkdir /new

最後在/etc/fstab 文件中加入

LABEL=/new /new ext3 default 1 1

這樣就ok了, 下次重啟後系統會自動掛載這個/new分區

查詢 ext2/ext3 的卷標名

# e2label /dev/hda2 查看

Boot 系統返回信息

更改ext2/ext3的卷標名

# e2label /dev/hda2 data 更改

# e2label /dev/hda2 查看

Data 系統返回信息

用卷標名來掛載文件系統

# mount —L data /data

# mount LABEL=DATA /data

 

當你想創建,刪除分區或重新劃分分區大小,分區所在的設備就不能是正在使用的(分區不能被掛載,並且交換空間也不能被啟動)。達到這個目錄的最簡單的方法就是,進入救援模式中引導系統。由於已經加載的文件系統的信息會自動的寫道/etc/mstab中,所以用戶只需要給出設備或掛載點中的一個參數即可

如果驅動器不包括任何這在使用的分區,你可以使用umount來卸載分區,使用swapoff 命令來關閉硬盤驅動器上的交換空間

文件系統的維護命令

Fsck /filesystem check ; 用於檢查和修復文件系統

e2fsck; 檢查和修復ext2/ext3文件系統

tun2fs; 更改ext2文件系統的屬性

resize2fs; 更改ext2文件系統的大小

parted; 更改多種文件系統的大小

linux有個parted 工具可以調整分區的大小,但是他是有限制的。如果向增大一個分區那麼該分區後面必須有沒有使用的空間,而且這個分區沒有被mount

# parted /dev/had resize 3 644 1300

意思是把分區3 調整從柱面644 到柱面1300結束,重新啟動後就會生效了。

Linux系統將每隔20次啟動系統或30天對文件系統進行一次檢查。這些屬性可以用tune2fs 來設定(時間間隔的周期以秒指定)

# tune2fs -i 0 /dev/hdb5

設置檢查文件系統的時間間隔秒數(-i)為0,0就是禁止根據時間的周期進行檢查。

文件系統訪問控制列表

可以為多個用戶和組建立文件訪問控制列表

基本格式化為; mount -o acl

Getfacl

Setfacl

Acl 訪問控制列表

自定義訪問控制列表是一種機制,每一個acl由一個用戶標識和組標識結合的整體。用戶標識與組標識配合相對應的訪問權限組成了

(user.group.mode)

訪問級別

(u.g,rwx) 特定的一個用戶,特定的組

(u.%,rwx)特定的一個用戶, 任意的組

(%.g,rwx)任意一個用戶,特定的組

(%.%,rwx)任意一個用戶,任意一個組

每一個文件都有13組的訪問權限模式,如果有多個類型的訪問權限條目,那麼較詳細的條目的優先級較高。在acl中設置某一個特定用戶的讀寫權限,如果設置了m(ask), 那用戶的權限還要受到

m(umask)的限制。原來是要兩個權限相與一下,才四用戶的正確權限

比如; 設置userA 的權限為r+w,而m設置為r,那麼userA的權限為r。

自動掛載文件系統

系統通過autofs服務自動的掛載文件系統

需要後台的automount 進程

Autofs服務的開關由 /etc/init.d/autofs腳本來控制

主要應用在軟驅和光驅的場合

如果該設備在一段時間內沒有被使用,那麼autofs會自動卸載該設備

Autofs 服務的主要配置文件

/etc/auto.master 和 /etc/auto.misc

通過這兩個文件來完成automount的設定

Auto.master 的每一行表示一個自動掛載的集群

每一行的格式為

自動掛載目錄的集合 參考文件(默認文件為/etc/auto.misc)

Auto.misc 文件中紀錄的則是每一個自動掛載的設備

每一個行的格式為;

掛載點(實際掛載點為“/自動掛載的目錄集合/掛載點”) 自動卸載的時間 設備文件名

Copyright © Linux教程網 All Rights Reserved