1. 程式人生 > >Linux磁盤掛載與RAID和LVM

Linux磁盤掛載與RAID和LVM

int 管理操作 軟件 管理 xtend 事先 掛載文件系統 性能 鏈接文件

Linux磁盤掛載
掛載:將額外文件系統與根文件系統某現存的目錄建立關聯關系,進而使得此目錄作為其他文件訪問入口的行為。

卸載:解除掛載的關聯關系的過程。

掛載點:掛載的目標位置。

linux中掛載使用命令:mount point

linux中卸載使用命令:umount
註意:掛載點下的原有文件,在被掛載以後會被臨時隱藏。
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設備
(1)設備文件:例如 dev/sda2
(2)卷標:-L LABEL
(3)UUID -U
(4)偽文件系統名稱:例如 proc

dir:掛載點
註意:事先存在;建議使用空目錄
正在被使用的目錄無法被卸載
#常用選項:
-t vsftype:指定要掛載的虛擬文件系統類型
-r readonly:只讀掛載
-w read and write:讀寫掛載
-a auto:自動掛載所有支持自動掛載的設備(定義在/etc/fstab,且掛載選項中有“自動掛載”功能)
-L LABELl:以卷標指定掛載設備
-U UUID:以UUID指定掛載設備
-B --bind:綁定目錄到另一個目錄上
-n 不更新到/etc/mtab:(默認更新)
查看內核追蹤到的已掛載的所有設備:#cat /proc/mounts

    -o options:掛載文件系統的選項
            async:掛載時使用異步模式
            sync:同步模式:數據可靠性高,性能差
            atime/noatime:每一次訪問文件都會更改訪問時間戳/不更改訪問時間戳(包含目錄和文件)
            diratime/nodiratime:目錄的訪問時間戳,同上
            auto/noauto:是否支持自動掛載
            exec/noexec:是否支持將文件系統上應用程序運行為進程
            dev/nodev:是否支持在此文件系統上使用設備文件
            suid/nosuid:是否支持suid權限
            remount:重新掛載
            ro:只讀
            rw:讀寫
            user/nouser:是否允許普通用戶掛載此設備
            acl:是否啟動此文件系統上的acl功能

註意:上述選項可多個使用,彼此使用逗號分隔
                    默認掛載選項:defaults
                    rw,suid,dev,exec,auto,nouser,and async

卸載命令:

                    umount DEVICE
                    umount MOUNT_POINT
                    查看正在訪問指定文件系統的進程
                    fuser -v MOUNT_POINT
                    終止所有正在訪問指定文件系統的進程
                    fuser -km MOUNT_POINT

掛載交換分區
啟用:swapon

                swapon [OPTION] [DEVICE]
                -a:激活所有的交換分區
                -p:PRIORITY (指定優先級)

禁用:swapoff

                swapoff [OPTION] [DEVICE]

內存空間使用狀態:

                free [OPTION]
                -m:以MB為單位
                -g:以GB為單位

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

                df:
                             -h:human-readble
                             -i:inodes instead of blocks
                             -p:以posix兼容的格式輸出

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

                du:
                        du [OPTION] ...DIR
                             -h:human-readble
                             -s:summary

文件掛載的配置文件:etc/fstab
每定義一個要掛載的文件系統
要掛載的設備或者偽文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
要掛載的設備或偽文件系統
設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc,sysfs)
掛載選項:
defaults
轉儲頻率
0:不做備份
1:每天轉儲
2:每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢(一般只有rootfs才有)
...
inode:index node,索引節點
地址指針:
直接指針
間接指針
三級指針
inode bitmap:對位標識每個inode空閑與否的狀態信息
鏈接文件:

   硬鏈接:
                         不能夠對目錄進行
                         不能誇分區進行
                         指向同一個inode的多個不同路徑,創建文件的硬鏈接即為inode創建新的引用路徑,因此會增加其引用計數;

        符號鏈接:
                 可以對目錄進行;
                 可以跨分區;
                 指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增加或減少目標文件inode的引用計數;
                         ln [-sv] SRC DEST
        -s:symbolic link
        -v: verbose

文件管理操作對文件的影響:
    文件刪除:
    文件復制:
    文件移動:

Linux中的RAID(磁盤陣列)技術
特點:提高I/O能力(多個磁盤並行讀寫)、提高耐用性(磁盤冗余)
RAID實現方式:
外接式磁盤陣列
內接式RAID(主板集成RAID控制器)
software RAID
級別:多塊磁盤組織在一起的工作方式有所不同

             level
    RAID-0:0, 條帶卷,strip; 
    RAID-1: 1, 鏡像卷,mirror;
    RAID-2
    ..
    RAID-5:
    RAID-6
    RAID10
    RAID01

RAID-0:

                            特性:讀寫性能提升
                                                可用空間N*min(最小磁盤大小)
                                                無容錯能力
                                                最少磁盤數:2+

RAID-1:

                            特性:讀性能提升,寫性能略有下降
                                                可用空間:1*min(最小磁盤大小)
                                                有冗余能力
                                                最少磁盤數:2+

RAID-5:

                            特性:讀寫性能提升
                                                可用空間:(N-1)*min(最小磁盤大小)
                                                有容錯能力(一塊磁盤)
                                                最少磁盤數:3+

RAID-6:

                            特性:讀寫性能提升
                                                可用空間:(N-2)*min(最小磁盤大小)
                                                有容錯能力(兩塊磁盤)
                                                最少磁盤數:4+

混合類型

RAID-10:(常用)

                            先分成3組,先做RAID1再做RAID0
                            特性:
                                                讀寫性能提升
                                                可用空間N*min(s1,s2...)/2
                                                有容錯能力:每組鏡像最多只能壞一塊
                                                最少磁盤數:4+

RAID-01:

                            先分成2組,先做RAID0再做RAID1

RAID-50、RAID-7(了解)
JBOD:just a bunch of disks
功能:將多塊磁盤的空間合並一個大的連續空間使用
可用空間:sum(s1,s2,...)
CentOS 6上的軟件RAID的實現:
結合內核中的md(multi devices)
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

                停止md設備:
                    mdadm -S /dev/md#

            watch命令:
                -n #: 刷新間隔,單位是秒;

                watch -n# ‘COMMAND‘

註意:在Linux中做軟RAID,需要修改磁盤格式為Linux raid auto(fd)
LVM2:

LVM: Logical Volume Manager, Version: 2

dm: device mapper,將一個或多個底層塊設備組織成一個邏輯設備的模塊;
    /dev/dm-#

/dev/mapper/VG_NAME-LV_NAME
    /dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
    /dev/vol0/root

pv管理工具:

    pvs:簡要pv信息顯示
    pvdisplay:顯示pv的詳細信息

    pvcreate /dev/DEVICE: 創建pv

vg管理工具:

    vgs
    vgdisplay

    vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
        先做pvmove

    vgremove

lv管理工具:

    lvs
    lvdisplay

    lvcreate -L #[mMgGtT] -n NAME VolumeGroup

    lvremove /dev/VG_NAME/LV_NAME

擴展邏輯卷:

    # lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
    # resize2fs /dev/VG_NAME/LV_NAME

縮減邏輯卷:

    # umount /dev/VG_NAME/LV_NAME
    # e2fsck -f /dev/VG_NAME/LV_NAME
    # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
    # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
    # mount

快照:snapshot

    lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name

文件系統掛載使用:
掛載光盤設備:
光盤設備文件:
IDE: /dev/hdc
SATA: /dev/sr0

符號鏈接文件:
/dev/cdrom
/dev/cdrw
/dev/dvd
/dev/dvdrw

mount -r /dev/cdrom /media/cdrom
umount /dev/cdrom

dd命令:convert and copy a file

    用法:
        dd if=/PATH/FROM/SRC of=/PATH/TO/DEST 
            bs=#:block size, 復制單元大小;
            count=#:復制多少個bs;

磁盤拷貝:

            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=256 count=1

兩個特殊設備:

        /dev/null: 數據黑洞;
        /dev/zero:吐零機;

Linux磁盤掛載與RAID和LVM