Linux存儲管理

来源:https://www.cnblogs.com/MessiXiaoMo3334/archive/2019/08/17/11370231.html
-Advertisement-
Play Games

一.存儲基礎知識 從工作原理區分: 機械 HDD 固態 SSD SSD的優勢: 從磁碟尺寸區分: 3.5 2.5 1.8 從插拔方式區分: 熱插拔 非熱插拔 從硬碟主要介面區分: IDE —— SATA I/II/II 個人電腦 SCSI —— SAS 伺服器 FC PCIE 從存儲連接方式區分: ...


一.存儲基礎知識

從工作原理區分:

  • 機械 HDD
  • 固態 SSD

SSD的優勢:

    SSD是摒棄傳統磁介質,採用電子存儲介質進行數據存儲和讀取的一種技術,突破了傳統機械硬碟的性能瓶頸,擁有極高的存儲性能,被認為是存儲
    技術發展的未來新星。固態硬碟的全集成電路化、無任何機械運動部件的革命性設計,從根本上解決了在移動辦公環境下,對於數據讀寫穩定性的需
    求。全集成電路化設計可以讓固態硬碟做成任何形狀。與傳統硬碟相比,SSD固態電子盤具有以下優點:
    第一,SSD不需要機械結構,完全的半導體化,不存在數據查找時間、延遲時間和磁碟尋道時間,數據存取速度快。
    第二,SSD全部採用快閃記憶體晶元,經久耐用,防震抗摔,即使發生與硬物碰撞,數據丟失的可能性也能夠降到最小。
    第三,得益於無機械部件及FLASH快閃記憶體晶元,SSD沒有任何噪音,功耗低。
    第四,質量輕,比常規1.8英寸硬碟重量輕20-30克,使得便攜設備搭載多塊SSD成為可能。同時因其完全半導體化,無結構限制,可根據實際情況  
    設計成各種不同介面、形狀的特殊電子硬碟。

從磁碟尺寸區分:

3.5 2.5 1.8

從插拔方式區分:

  • 熱插拔
  • 非熱插拔

從硬碟主要介面區分:

  • IDE —— SATA I/II/II 個人電腦
  • SCSI —— SAS 伺服器
  • FC
  • PCIE

從存儲連接方式區分:

  • 本地存儲:例如DellR730本地磁碟
  • 外部存儲:scsi線、stat線、sas線、FC線
  • 網路存儲:乙太網絡、FC網路

從kernel對不同介面硬碟命名方式:

OS      IDE(並口)     SATA(串口)              SCSI          
RHEL5        /dev/hda           /dev/sda                /dev/sda        
RHEL6        /dev/sda           /dev/sda                /dev/sda
RHEL7        /dev/sda           /dev/sda                /dev/sda
KVM          /dev/vda(半虛擬化驅動)
           /dev/sda(全虛擬化驅動)

從分區方式區分:

存儲大小            分區軟體        分區表
2TB以下的硬碟        fdisk/parted/   MSDOS(MBR) 
2TB以上的硬碟        parted      GPT
註意:從MBR轉到GPT,或從GPT轉換到MBR會導致數據全部丟失!

MSDOS(MBR)分區的限制:

主引導分區(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是電腦開機後訪問硬碟時所必須要讀取的首個扇區。

MBR(512位元組)=446位元組(存放grub指針)+64位元組(分區表)+2位元組(校驗位)

主分區,擴展分區,邏輯分區

只支持4個主分區,總分區數不能超過15個

只支持2TB以下的硬碟

GPT的限制:

沒有限制

HP伺服器硬碟:

/dev/cciss/c0d0
/dev/cciss/c0d0p1   //c0第一個控制器, d0第一塊磁碟, p1分區1
/dev/cciss/c0d0p2   //c0第一個控制器, d0第一塊磁碟, p2分區2

文件系統與數據資料:

Ext3:文件系統最大16TB,單個文件最大2TB

Ext4:文件系統最大16TB,單個文件最大16TB

XFS:

Ext3:是一款日誌文件系統,能夠在系統異常宕機時避免文件系統資料丟失,並能自動修複數據的不一致與錯誤。  然而,當硬碟容量較大時,所需的修複時間也會很長,而且也不能百分之百地保證資料不會丟失。它會把整個磁碟  的每個寫入動作的細節都預先記錄下來,以便在發生異常宕機後能回溯追蹤到被中斷的部分,然後嘗試進行修複。

Ext4:Ext3的改進版本,作為RHEL 6系統中的預設文件管理系統,它支持的存儲容量高達1EB(1EB=1,073,741,824GB),  且能夠有無限多的子目錄。另外,Ext4文件系統能夠批量分配block塊,從而極大地提高了讀寫效率。

XFS:是一種高性能的日誌文件系統,而且是RHEL 7中預設的文件管理系統,它的優勢在發生意外宕機後尤其明顯,  即可以快速地恢復可能被破壞的文件,而且強大的日誌功能只用花費極低的計算和存儲性能。並且它最大可支持的存  儲容量為18EB,這幾乎滿足了所有需求。

二.磁碟分區

2.1 磁碟管理相關命令

2.1.1 fdisk 分區工具

fdisk是一個創建和維護分區表的程式,它相容DOS類型的分區表、BSD或者SUN類型的磁碟列表。

  • 語法:

    fdisk [必要參數][選擇參數]
  • 必要參數:

    -l 列出素所有分區表
    -u 與"-l"搭配使用,顯示分區數目
  • 選擇參數:

    -s<分區編號> 指定分區
    -v 版本信息
  • 菜單操作說明:

    a   toggle a bootable flag                  --設置啟動分區
    b   edit bsd disklabel                      --編輯分區標簽
    d   delete a partition                      --刪除一個分區
    l   list known partition types              --列出分區類型
    m   print this menu                         --幫助
    n   add a new partition                     --建立一個新的分區
    o   create a new empty DOS partition table  --創建一個新的空白DOS分區表
    p   print the partition table               --列印分區表
    q   quit without saving changes             --退出不保存設置
    t   changea partition's system id           --改變分區的類型
    u   changedisplay/entry units               --改變顯示的單位
    v   verifythe partition table               --檢查驗證分區表
    w   write table to disk and exit            --保存分區表
  • 示例
    顯示當前分區情況:
# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot   Start     End   Blocks  Id System
/dev/sda1  *      1     13   104391  83 Linux
/dev/sda2       14    1305  10377990  8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

顯示SCSI硬碟的每個分區情況:


# fdisk -lu  

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes

  Device Boot   Start     End   Blocks  Id System
/dev/sda1  *     63   208844   104391  83 Linux
/dev/sda2     208845  20964824  10377990  8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

2.1.2 lsblk 查看塊設備

lsblk用於列出所有可用塊設備的信息,而且還能顯示他們之間的依賴關係,但是它不會列出RAM盤的信息。塊設備有硬碟,快閃記憶體盤,cd-ROM等等。

  • 選項:

    -a, --all            顯示所有設備。
    -b, --bytes          以bytes方式顯示設備大小。
    -d, --nodeps         不顯示 slaves 或 holders。
    -D, --discard        print discard capabilities。
    -e, --exclude <list> 排除設備 (default: RAM disks)。
    -f, --fs             顯示文件系統信息。
    -h, --help           顯示幫助信息。
    -i, --ascii          use ascii characters only。
    -m, --perms          顯示許可權信息。
    -l, --list           使用列表格式顯示。
    -n, --noheadings     不顯示標題。
    -o, --output <list>  輸出列。
    -P, --pairs          使用key="value"格式顯示。
    -r, --raw            使用原始格式顯示。
    -t, --topology       顯示拓撲結構信息。
  • 示例

    [root@centos7-1 ~]# lsblk 
    NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sr0          11:0    1 1024M  0 rom  
    vda         252:0    0   10G  0 disk 
    ├─vda1      252:1    0  500M  0 part /boot
    └─vda2      252:2    0  9.5G  0 part 
      ├─cl-root 253:0    0    9G  0 lvm  /
      └─cl-swap 253:1    0  500M  0 lvm  [SWAP]
    
    NAME:這是塊設備名。
    MAJ:MIN:本欄顯示主要和次要設備號。
    RM:本欄顯示設備是否可移動設備。註意,在本例中設備sdb和sr0的RM值等於1,這說明他們是可移動設備。
    SIZE:本欄列出設備的容量大小信息。例如298.1G表明該設備大小為298.1GB,而1K表明該設備大小為1KB。
    RO:該項表明設備是否為只讀。在本案例中,所有設備的RO值為0,表明他們不是只讀的。
    TYPE:本欄顯示塊設備是否是磁碟或磁碟上的一個分區。在本例中,sda和sdb是磁碟,而sr0是只讀存儲(rom)。
    MOUNTPOINT:本欄指出設備掛載的掛載點。

2.1.3 partprobe 刷新授權表

partprobe命令用於重讀分區表,當出現刪除文件後,出現仍然占用空間。可以partprobe在不重啟的情況下重讀分區。

  • 選項:

    -d:不更新內核;
    -s:顯示摘要和分區;
    -h:顯示幫助信息;
    -v:顯示版本信息。
  • 示例:

1、添加新的磁碟分區
[root@localhost ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 38770.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of lilo)
2) booting and partitioning software from other OSs
  (e.g., DOS FDISK, OS/2 FDISK)

command (m for help): p

Disk /dev/sda: 318.9 GB, 318901321728 bytes
255 heads, 63 sectors/track, 38770 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   id  System
/dev/sda1   *           1        3824    30716248+  83  Linux
/dev/sda2            3825        7648    30716280   83  Linux
/dev/sda3            7649        8668     8193150   82  Linux swap / Solaris

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Selected partition 4
First cylinder (8669-38770, default 8669):
Using default value 8669
last cylinder or +size or +sizeM or +sizeK (8669-38770, default 38770): +100G   
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 

Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

2、 使用工具partprobe讓kernel讀取分區信息
[root@localhost ~]# partprobe
使用fdisk工具只是將分區信息寫到磁碟,如果需要mkfs磁碟分區則需要重啟系統,而使用partprobe則可以使kernel重新讀取分區信息,從而避免重啟系統。

3、格式化文件系統
[root@localhost ~]# mkfs.ext3 /dev/sda4
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
12222464 inodes, 24416791 blocks
1220839 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
746 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
       32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 
    2654208, 4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:

done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#

4、 mount新的分區/dev/sda4
[root@localhost ~]# e2label  /dev/sda4 /data
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sda4 /data
[root@localhost ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             29753556   3810844  24406900  14% /
/dev/sda2             29753588  11304616  16913160  41% /oracle
tmpfs                  2023936         0   2023936   0% /dev/shm
/dev/sda4             96132968    192312  91057300   1% /data

2.1.4 blkid 查看設備UUID

在Linux下可以使用blkid命令對查詢設備上所採用文件系統類型進行查詢。blkid主要用來對系統的塊設備(包括交換分區)所使用的文件系統類型、LABEL、UUID等信息進行查詢。要使用這個命令必須安裝e2fsprogs軟體包。

  • 示例:

    # blkid /dev/sda3
    /dev/sda3: UUID="3bca1b81-1339-4345-9df4-9c25ec00a60b" TYPE="swap" 

2.2 磁碟分區示例

分區步驟:

  • 1、需要有一塊硬碟
  • 2、使用分區工具對硬碟進行分區(fdisk)
  • 3、格式化分區
  • 4、掛載使用
  1. 進入分區表 新建分區
  2. 更新分區表(刷新分區表)
  3. 格式化
  4. 掛載

第1步:我們首先使用fdisk命令來嘗試管理/dev/vdb硬碟設備。在看到提示信息後輸入參數p來查看硬碟設備內已有的分區信息,其中包括了硬碟的容量大小、扇區個數等信息:

[root@centos7-1 ~]# fdisk /dev/vdb 
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁碟標識符 0xf24ceedc 創建新的 DOS 磁碟標簽。

命令(輸入 m 獲取幫助):p

磁碟 /dev/vdb:21.5 GB, 21474836480 位元組,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標簽類型:dos
磁碟標識符:0xf24ceedc

   設備 Boot      Start         End      Blocks   Id  System

命令(輸入 m 獲取幫助):

第2步:輸入參數n嘗試添加新的分區。系統會要求您是選擇繼續輸入參數p來創建主分區,還是輸入參數e來創建擴展分區。這裡輸入參數p來創建一個主分區:

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p

第3步:在確認創建一個主分區後,系統要求您先輸入主分區的編號。我們在前文得知,主分區的編號範圍是1~4,因此這裡輸入預設的1就可以了。接下來系統會提示定義起始的扇區位置,這不需要改動,我們敲擊回車鍵保留預設設置即可,系統會自動計算出最靠前的空閑扇區的位置。最後,系統會要求定義分區的結束扇區位置,這其實就是要去定義整個分區的大小是多少。我們不用去計算扇區的個數,只需要輸入+2G即可創建出一個容量為2GB的硬碟分區。

分區號 (1-4,預設 1):1
起始 扇區 (2048-41943039,預設為 2048):此處敲擊回車
將使用預設值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,預設為 41943039):+2G
分區 1 已設置為 Linux 類型,大小設為 2 GiB

第4步:再次使用參數p來查看硬碟設備中的分區信息。果然就能看到一個名稱為/dev/vdb1、起始扇區位置為2048、結束扇區位置為4196351的主分區了。這時候千萬不要直接關閉視窗,而應該敲擊參數w後回車,這樣分區信息才是真正的寫入成功啦。

命令(輸入 m 獲取幫助):p

磁碟 /dev/vdb:21.5 GB, 21474836480 位元組,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標簽類型:dos
磁碟標識符:0xf24ceedc

   設備 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   83  Linux

命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁碟。

第5步:在上述步驟執行完畢之後,Linux系統會自動把這個硬碟主分區抽象成/dev/vdb1設備文件。我們可以使用file命令查看該文件的屬性,有些時候系統並沒有自動把分區信息同步給Linux內核,而且這種情況似乎還比較常見(但不能算作是嚴重的bug)。我們可以輸入partprobe命令手動將分區信息同步到內核,而且一般推薦連續兩次執行該命令,效果會更好。如果使用這個命令都無法解決問題,那麼就重啟電腦吧,這個殺手鐧百試百靈,一定會有用的。

[root@centos7-1 ~]# partprobe
[root@centos7-1 ~]# partprobe
[root@centos7-1 ~]# file /dev/vdb1 
/dev/vdb1: block special

第6步:格式化,如果硬體存儲設備沒有進行格式化,則Linux系統無法得知怎麼在其上寫入數據。因此,在對存儲設備進行分區後還需要進行格式化操作。在Linux系統中用於格式化操作的命令是mkfs。這條命令很有意思,因為在Shell終端中輸入mkfs名後再敲擊兩下用於補齊命令的Tab鍵,會有如下所示的效果

[root@centos7-1 ~]# mkfs
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat 

對!這個mkfs命令很貼心地把常用的文件系統名稱用尾碼的方式保存成了多個命令文件,用起來也非常簡單—mkfs.文件類型名稱。例如要格式分區為XFS的文件系統,則命令應為mkfs.xfs /dev/sdb1。

[root@centos7-1 ~]# mkfs.xfs /dev/vdb1 
meta-data=/dev/vdb1              isize=512    agcount=4, agsize=131072 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

第7步:掛載,完成了存儲設備的分區和格式化操作,接下來就是要來掛載並使用存儲設備了。與之相關的步驟也非常簡單:首先是創建一個用於掛載設備的掛載點目錄;然後使用mount命令將存儲設備與掛載點進行關聯;最後使用df -h命令來查看掛載狀態和硬碟使用量信息。

[root@centos7-1 ~]# mkdir /newFS
[root@centos7-1 ~]# mount /dev/vdb1 /newFS/
[root@centos7-1 ~]# df -h
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root  9.1G  3.7G  5.4G   41% /
devtmpfs             481M     0  481M    0% /dev
tmpfs                497M  124K  497M    1% /dev/shm
tmpfs                497M   14M  484M    3% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/vda1            497M  166M  332M   34% /boot
tmpfs                100M  8.0K  100M    1% /run/user/42
tmpfs                100M   16K  100M    1% /run/user/0
/dev/vdb1            2.0G   33M  2.0G    2% /newFS[![複製代碼](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);

開機自動掛載,通過UUID掛載,blkid 查看設備的UUID

[root@centos7-1 ~]# blkid /dev/vdb1 
/dev/vdb1: UUID="a9c72628-f6b1-4feb-bdfb-9fa456d119bb" TYPE="xfs"
[root@centos7-1 ~]# vim /etc/fstab
UUID=a9c72628-f6b1-4feb-bdfb-9fa456d119bb  /newFS         xfs     defaults        0 0

三.磁碟掛載與卸載

  • 單一文件系統不應該被重覆掛載在不同的掛載點(目錄)中;
  • 單一目錄不應該重覆掛載多個文件系統;
  • 要作為掛載點的目錄,理論上應該都是空目錄才是。

如果你要用來掛載的目錄裡面並不是空的,那麼掛載了文件系統之後,原目錄下的東西就會暫時的消失。 舉個例子來說,假設你的 /home 原本與根目錄 (/) 在同一個文件系統中,底下原本就有 /home/test 與 /home/vbird 兩個目錄。然後你想要加入新的硬碟,並且直接掛載 /home 底下,那麼當你掛載上新的分割槽時,則 /home 目錄顯示的是新分割槽內的數據,至於原先的 test 與 vbird 這兩個目錄就會暫時的被隱藏掉了!註意:並不是被覆蓋掉, 而是暫時的隱藏了起來,等到新分割槽被卸除之後,則 /home 原本的內容就會再次的跑出來啦!

  • 格式:

    mount [-t 文件系統]  [-o 額外選項]  裝置文件名  掛載點
  • 參數:

    選項與參數:
    -a  :依照配置文件 /etc/fstab 的數據將所有未掛載的磁碟都掛載上來
    -l  :單純的輸入 mount 會顯示目前掛載的信息。加上 -l 可增列 Label 名稱!
    -t  :與 mkfs 的選項非常類似的,可以加上文件系統種類來指定欲掛載的類型。
          常見的 Linux 支持類型有:ext2, ext3, vfat, reiserfs, iso9660(光碟格式),
          nfs, cifs, smbfs(此三種為網路文件系統類型)
    -n  :在預設的情況下,系統會將實際掛載的情況實時寫入 /etc/mtab 中,以利其他程式
          的運行。但在某些情況下(例如單人維護模式)為了避免問題,會刻意不寫入。
          此時就得要使用這個 -n 的選項了。
    -L  :系統除了利用裝置文件名 (例如 /dev/hdc6) 之外,還可以利用文件系統的標頭名稱
          (Label)來進行掛載。最好為你的文件系統取一個獨一無二的名稱吧!
    -o  :後面可以接一些掛載時額外加上的參數!比方說賬號、密碼、讀寫許可權等:
        rw           讀寫
        ro           只讀
        suid         支持suid
        dev          支持設備文件
        nodev        不支持設備文件
        noexec       不允許執行二進位文件
        exec         允許執行二進位文件
        auto         mount -a 開機自動掛載
        noauto       mount -a 開機不自動掛載
        async        非同步寫入
        sync         同步同入
        noatime      不更新訪問時間atime
        usrquota     支持用戶級磁碟配額功能
        grpquota     支持組級磁碟配額功能
        acl          支持acl功能
        remount      線上重新掛載
        pri          指定優先順序
  • 示例

    mount -t ext4 -o acl /dev/sdb1 /mnt/disk1 
    文件系統類型:ext4,xfs,nfs,cifs,iso9660,loop

3.1 掛載IOS文件

[root@centos7-1 ~]# mount -o loop /data/CentOS-7.3-x86_64-DVD-1611.iso /ios/
[root@centos7-1 ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root  202G   34G  169G   17% /
devtmpfs                 1.7G     0  1.7G    0% /dev
tmpfs                    1.8G   12M  1.7G    1% /dev/shm
tmpfs                    1.8G   26M  1.7G    2% /run
tmpfs                    1.8G     0  1.8G    0% /sys/fs/cgroup
/dev/sda1                794M  179M  616M   23% /boot
/dev/mapper/centos-opt   200G   85M  200G    1% /opt
/dev/mapper/centos-home   51G   37M   51G    1% /home
tmpfs                    349M   36K  349M    1% /run/user/0
/dev/loop0               4.1G  4.1G     0  100% /ios

3.2 開機自動掛載

/etc/fstab

格式說明:

要掛載的資源路徑    掛載點    資源類型    掛載選項    dump備份支持  文件系統檢測
/dev/vda1           /      ext4      defaults        1            1
1段:掛載的設備(磁碟設備的文件名或設備的捲標或者是設備的UUID)
2段:掛載點(建議用一個空目錄)
3段:文件系統類型(ext3、ext4、vfat、ntfs、swap等等)
4段:文件系統選項(fs mntops)在裝載文件系統時使用的裝載選項
5段:是否支持dump備份。0代表不要做dump備份,1代表要每天進行dump的動作,2也代表其他不定日期的dump備份。數字越小優先順序越高。
6段:是否用 fsck 檢驗扇區。#開機的過程中,系統預設會用fsck檢驗文件系統是否完整。0是不要檢驗,1表示最先檢驗(一般只有根目錄會設定為1)
[root@centos7-1 ~]# cat /etc/fstab 
...
需要掛載的設備            掛載點                  文件類型 
/dev/mapper/cl-root     /                        xfs       defaults        0 0
/dev/mapper/cl-swap     swap                     swap      defaults        0 0
  • 示例:

    [root@centos7-1 ~]# blkid /dev/vdb1 
    /dev/vdb1: UUID="a9c72628-f6b1-4feb-bdfb-9fa456d119bb" TYPE="xfs"
    [root@centos7-1 ~]# vim /etc/fstab
    UUID=a9c72628-f6b1-4feb-bdfb-9fa456d119bb  /newFS         xfs     defaults        0 0 

3.3 Automount 自動掛載

3.3.1 本地掛載

  • 掛載是由訪問產生的:設置開機不一定要掛載的目錄,當用的時候才實現自動掛載。
  • 卸載是由超時產生的:用戶不使用自動掛載的目錄一段的時間,會自動卸載。(預設時間為5分鐘)

autofs ----自動掛載的軟體

[root@centos7-1 ~]# rpm -q autofs 
autofs-5.0.7-56.el7.x86_64

配置文件:

/etc/auto.master        主配置文件
/etc/auto.misc          子配置文件/etc/sysconfig/autofs   額外配置文件
/usr/sbin/automount     二進位命令

示例:

通過autofs 自動掛載本地設備 /dev/vdb1 到 /fs 目錄

第1步:修改主配置文件,定義一級掛載點以及子配置文件, --timeout=20 設置超時時間為20秒。20秒如果沒有訪問,自動卸載

[root@centos7-1 ~]# vim /etc/auto.master
/-      /etc/auto.fs     --timeout=20

第2步:創建子配置文件,並定義二級掛載點

[root@centos7-1 ~]# vim /etc/auto.fs
/fs    -fstype=xfs,rw :/dev/vdb1

一級二級掛載點說明:將/dev/vda1 掛載到/u01/vd1目錄下,那麼一級掛載點就是/dev、二級掛載點就是vd1
如果單獨只有一級目錄,那麼auto.master裡面寫/-

第3步:啟動服務並查看狀態

[root@centos7-1 ~]# systemctl start autofs
[root@centos7-1 ~]# systemctl status autofs

第4步:測試驗證

[root@centos7-1 ~]# df -h                // 可以查看到沒有進行使用,雖然啟動了服務,但是還是沒有掛載
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root  9.1G  3.7G  5.4G   41% /
devtmpfs             481M     0  481M    0% /dev
tmpfs                497M  124K  497M    1% /dev/shm
tmpfs                497M   14M  484M    3% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/vda1            497M  166M  332M   34% /boot
tmpfs                100M  8.0K  100M    1% /run/user/42
tmpfs                100M   16K  100M    1% /run/user/0

[root@centos7-1 ~]# cd /fs/                // 一旦掛載點進行了使用,再次查看,就自動掛載上了
[root@centos7-1 fs]# ls
[root@centos7-1 fs]# df -h
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root  9.1G  3.7G  5.4G   41% /
devtmpfs             481M     0  481M    0% /dev
tmpfs                497M  124K  497M    1% /dev/shm
tmpfs                497M   14M  484M    3% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/vda1            497M  166M  332M   34% /boot
tmpfs                100M  8.0K  100M    1% /run/user/42
tmpfs                100M   16K  100M    1% /run/user/0
/dev/vdb1            2.0G   33M  2.0G    2% /fs

[root@centos7-1 ~]# date                 // 測試超時是否自動卸載
2018年 11月 09日 星期五 16:21:19 CST
[root@centos7-1 ~]# date 
2018年 11月 09日 星期五 16:21:51 CST
[root@centos7-1 ~]# df -h                // 時間超過了20秒後查看,已自動卸載
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root  9.1G  3.7G  5.4G   41% /
devtmpfs             481M     0  481M    0% /dev
tmpfs                497M  124K  497M    1% /dev/shm
tmpfs                497M   14M  484M    3% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/vda1            497M  166M  332M   34% /boot
tmpfs                100M  8.0K  100M    1% /run/user/42
tmpfs                100M   16K  100M    1% /run/user/0

3.3.2 遠程掛載 NFS

要求:將NFS伺服器上的/home/dir1和/home/dir2目錄分別掛載 到 掛載伺服器的/nfs-server/dir1和/nfs-server/dir2上

NFS伺服器:192.168.122.228
簡單準備共用目錄

[root@centos7-2 ~]# mkdir /home/dir{1,2}    
[root@centos7-2 ~]# vim /etc/exports
/home/dir1      *(rw,sync,no_root_squash)
/home/dir2      *(rw,sync,no_root_squash)
[root@centos7-2 ~]# systemctl restart nfs-server.service  
[root@centos7-2 ~]# systemctl status  nfs-server.service

掛載伺服器:192.168.122.205

第1步:查看nfs伺服器共用的目錄

[root@centos7-1 ~]# showmount -e 192.168.122.228
Export list for 192.168.122.228:
/home/dir2 *
/home/dir1 *

手動掛載示例:

[root@centos7-1 ~]# mount -t nfs 192.168.122.228:/home/dir1 /nfs-server/dir1
[root@centos7-1 ~]# mount -t nfs 192.168.122.228:/home/dir2 /nfs-server/dir2
[root@centos7-1 ~]# df -h
文件系統                    容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root         9.1G  3.7G  5.4G   41% /
devtmpfs                    481M     0  481M    0% /dev
tmpfs                       497M  124K  497M    1% /dev/shm
tmpfs                       497M   14M  484M    3% /run
tmpfs                       497M     0  497M    0% /sys/fs/cgroup
/dev/vda1                   497M  166M  332M   34% /boot
tmpfs                       100M  8.0K  100M    1% /run/user/42
tmpfs                       100M   16K  100M    1% /run/user/0
192.168.122.228:/home/dir1  9.1G  3.7G  5.4G   41% /nfs-server/dir1
192.168.122.228:/home/dir2  9.1G  3.7G  5.4G   41% /nfs-server/dir2

開機自動掛載示例:

[root@centos7-1 ~]# vim /etc/fstab
192.168.122.228:/home/dir1    /nfs-server/dir1    xfs        defaults        0 0
192.168.122.228:/home/dir2    /nfs-server/dir2    xfs        defaults        0 0
優點:可以實現開機自動掛載
缺點:由於網路連接的不穩定性,會導致網路設備掛載失敗
結論:適合掛載本地設備和持續使用的設備

第2步:修改主配置文件;定義一級掛載點以及子配置文件

[root@centos7-1 ~]# vim /etc/auto.master
/-     /etc/auto.nfs   --timeout=60

第3步:創建子配置文件

[root@centos7-1 ~]# vim /etc/auto.nfs
/dir1    rw  192.168.122.228:/home/dir1
/dir2    rw  192.168.122.228:/home/dir2

第4步:啟動服務

[root@centos7-1 ~]# systemctl start autofs 
[root@centos7-1 ~]# systemctl status autofs

第5步:測試驗證

[root@centos7-1 ~]# df -h
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root  9.1G  3.7G  5.4G   41% /
devtmpfs             481M     0  481M    0% /dev
tmpfs                497M  124K  497M    1% /dev/shm
tmpfs                497M   14M  484M    3% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/vda1            497M  166M  332M   34% /boot
tmpfs                100M  8.0K  100M    1% /run/user/42
tmpfs                100M   16K  100M    1% /run/user/0

[root@centos7-1 ~]# cd /dir1
[root@centos7-1 dir1]# df -h
文件系統                    容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root         9.1G  3.7G  5.4G   41% /
devtmpfs                    481M     0  481M    0% /dev
tmpfs                       497M  124K  497M    1% /dev/shm
tmpfs                       497M   14M  484M    3% /run
tmpfs                       497M     0  497M    0% /sys/fs/cgroup
/dev/vda1                   497M  166M  332M   34% /boot
tmpfs                       100M  8.0K  100M    1% /run/user/42
tmpfs                       100M   16K  100M    1% /run/user/0
192.168.122.228:/home/dir1  9.1G  3.7G  5.4G   41% /dir1

[root@centos7-1 dir1]# cd /dir2
[root@centos7-1 dir2]# df -h
文件系統                    容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root         9.1G  3.7G  5.4G   41% /
devtmpfs                    481M     0  481M    0% /dev
tmpfs                       497M  124K  497M    1% /dev/shm
tmpfs                       497M   14M  484M    3% /run
tmpfs                       497M     0  497M    0% /sys/fs/cgroup
/dev/vda1                   497M  166M  332M   34% /boot
tmpfs                       100M  8.0K  100M    1% /run/user/42
tmpfs                       100M   16K  100M    1% /run/user/0
192.168.122.228:/home/dir2  9.1G  3.7G  5.4G   41% /dir2

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 前提 入行已經7,8年了,一直想做一套漂亮點的自定義控制項,於是就有了本系列文章。 開源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control 如果覺得寫的還行,請點個 star 支持一下吧 歡迎前來交流探討: 企鵝群568015492 目錄 ...
  • 方法一: 常規的WPF操作: 後臺代碼: 方法二: 後臺直接寫: ...
  • 背景 By 魯迅 By 高爾基 說明: 1. Kernel版本:4.14 2. ARM64處理器 3. 使用工具:Source Insight 3.5, Visio 1. 介紹 ,由ARM定義的電源管理介面規範,通常由Firmware來實現,而Linux系統可以通過 指令來進入不同的 ,進而調用對應 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...