Linux磁盤管理和lvm


磁盤管理

硬盤接口和硬盤種類

從整體的角度上,硬盤接口分為IDE、SATA、SCSI和SAS四種,IDE接口硬盤多用於家用產品中,也部分應用於服務器,SCSI接口的硬盤則主要應用於服務器市場,而SAS只在高端服務器上,價格昂貴

SATA硬盤:  

  用SATA接口的硬盤又叫串口硬盤,是以后PC機的主流發展方向,因為其有較強的糾錯能力,錯誤一經發現能自動糾正,這樣就大大的提高了數據傳輸的安全性。新的SATA 使用了差動信號系統"differential-signal-amplified-system"。這種系統能有效的將噪聲從正常訊號中濾除,良好的噪聲濾除能力使得SATA只要使用低電壓操作即可,和 Parallel ATA 高達5V的傳輸電壓相比,SATA 只要0.5V(500mv) 的峰對峰值電壓即可操作於更高的速度之上。"比較正確的說法是:峰對峰值'差模電壓'"。一般轉速可達7200轉/分。

SCSI硬盤:

  SCSI硬盤即采用SCSI接口的硬盤。 優點:SCSI接口具有應用范圍廣、多任務、帶寬大、CPU占用率低,以及熱插拔等。它由於性能好、穩定性高,因此在服務器上得到廣泛應用。缺點:由於SCSI硬盤價格非常昂貴,所以一般的PC是不會使用SCSI硬盤。 一般轉速可達10000轉/分。

SAS硬盤:

  SAS(Serial Attached SCSI)即串行連接SCSI,是新一代的SCSI技術,和現在流行的Serial ATA(SATA)硬盤相同,都是采用串行技術以獲得更高的傳輸速度,並通過縮短連結線改善內部空間等。改善存儲系統的效能、可用性和擴充性。 一般轉速可達15000轉/分,甚至更高。

磁盤分區

目前的磁盤主要有 MBR 以及 GPT 兩種格式,這節我們主要談 MBR

  MBR的意思是“主引導記錄”,最早在1983年在IBM PC DOS 2.0中提出。之所以叫“主引導記錄”,是因為它是存在於驅動器開始部分的一個特殊的啟動扇區。這個扇區包含了驅動器的分區信息(64個字節,大小固定,一個分區用16個字節記錄)和已安裝的操作系統的啟動加載器(446字節)和2個字節的結束標志,所以這個扇區的大小是512個字節。。所謂啟動加載器,是一小段代碼,用於加載驅動器上其他分區上更大的加載器。如果你安裝了Windows,Windows啟動加載器的初始信息就放在這個區域里——如果MBR的信息被覆蓋導致Windows不能啟動,你就需要使用Windows的MBR修復功能來使其恢復正常。如果你安裝了Linux,則位於MBR里的通常會是GRUB加載器。MBR支持最大2TB磁盤,它無法處理大於2TB容量的磁盤。MBR還只支持最多4個主分區——如果你想要更多分區,你需要創建所謂“擴展分區”,並在其中創建邏輯分區。

分區符

  盤的0柱面、0磁頭、1扇區稱為主引導扇區(也叫主引導記錄MBR)。它由三個部分組成,主引導程序、硬盤分區表DPT(Disk Partition table)和分區有效標志(55AA)。在總共512字節的主引導扇區里主引導程序(boot loader)占446個字節,第二部分是Partition table區(分區表),即DPT,占64個字節,硬盤中分區有多少以及每一分區的大小都記在其中。第三部分是魔數magic number,占2個字節,固定為5AA。

分區編號:主分區1-4 ,邏輯分區5……

LINUX規定:邏輯分區必須建立在擴展分區之上,而不是建立在主分區上

分區作用:

主分區:主要是用來啟動操作系統的,它主要放的是操作系統的啟動或引導程序,/boot分區最好放在主分區上

擴展分區不能使用的,它只是做為邏輯分區的容器存在的,先創建一個擴展分區,在拓展分區之上創建邏輯分區;我們真正存放數據的是主分區和邏輯分區,大量數據都放在邏輯分區中。

使用分區工具fdisk對磁盤進行操作,分區,格式化

主分區+擴展分區 最多只能有4個

擴展分區可以是0個,最多是1個

擴展分區不能直接使用,擴展分區必須首先創建成邏輯分區才能使用

邏輯分區可以是0個 1個 多個

 

命名方式: /dev/sd{a-z}n——a代表第一塊,b表示第二塊,以此類推

n  表示每塊磁盤上划分的磁盤分區編號

文件系統

文件系統的特征:我們都知道磁盤分區完畢后還需要進行格式化(format),之后操作系統才能使用這個文件系統。為什么要格式化?這是因為每種操作系統所設置的文件屬性/權限並不相同,為了存放所需的數據就需要將分區進行格式化,以成為操作系統能夠利用的文件系統格式(filesystem)。

用戶在硬件存儲設備中執行的文件建立、寫入、讀取、修改、轉存與控制等操作都是依靠文件系統來完成的。文件系統的作用是合理規划硬盤,以保證用戶正常的使用需求。Linux系統支持數十種的文件系統,而最常見的文件系統如下所示。

Ext3

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

Ext4

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

XFS

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

fdisk磁盤分區管理

作用:對磁盤進行操作,分區,格式化

語法:fdisk  [選項]  device

  常用選項  -i  查看磁盤分區表

使用方法

  fdisk  /dev/sda

  1. 輸入 m 顯示所有命令列示。

  2. 輸入 p 顯示硬盤分割情形。

  3. 輸入 a 設定硬盤啟動區。

  4. 輸入 n 設定新的硬盤分割區。

    4.1. 輸入 e 硬盤為[延伸]分割區(extend)。

    4.2. 輸入 p 硬盤為[主要]分割區(primary)。默認不輸入為p

  5. 輸入 t 改變硬盤分割區屬性。(制作交換分區時會用到)

  6. 輸入 d 刪除硬盤分割區屬性。

  7. 輸入 q 結束不存入硬盤分割區屬性。

  8. 輸入 w 結束並寫入硬盤分割區屬性。

添加主分區

首先添加一塊新的硬盤(要注意要在虛擬機關機的前提下才能對磁盤進行添加)

第一步查看磁盤   ls  /dev/sd*

  

 

[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc

lsblk -f 也可以查看磁盤,這個命令還可以查看每個磁盤上面安裝的文件系統,這個命令很重要哦

[root@localhost ~]# lsblk -f
NAME        FSTYPE      LABEL UUID                                   MOUNTPOINT
sda                                                                  
├─sda1      xfs               19cc0cdc-62b9-4e32-b5ac-c946e7ed608a   /boot
└─sda2      LVM2_member       BgwSVO-gUJY-gioG-uUWY-OgtR-hdHR-cbKwLk 
  ├─cl-root xfs               27369bc8-d775-4805-8896-7f7dd5762b06   /
  └─cl-swap swap              319fd4ba-62a8-4be2-bc04-2caded22ecfe   [SWAP]
sdb                                                                  
└─sdb1      xfs               f0ea650e-357b-4fa1-a8f6-be95982866b4   
sdc                                                                  

 

 

第二步 對sdb分配一個100M的空間

  

 
         

  root@localhost ~]# fdisk /dev/sdb              #進入磁盤管理
  歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

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

命令(輸入 m 獲取幫助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

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

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcf5dbbb2

   設備 Boot      Start         End      Blocks   Id  System

命令(輸入 m 獲取幫助):n #建立一個新的分區
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p #默認為p,直接回車即可
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+100M
分區 1 已設置為 Linux 類型,大小設為 100 MiB

命令(輸入 m 獲取幫助):
命令(輸入 m 獲取幫助):p #查看已經分好的磁盤

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xcf5dbbb2

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   83  Linux

命令(輸入 m 獲取幫助):w #保存並退出,如果不想保存選擇 q
The partition table has been altered!

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

 

第三步  格式化

格式化即給新建的磁盤分區添加一個文件系統,現在常用的為 XFS文件系統  

   mkfs.xfs  /dev/sdb1

[root@localhost ~]# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.

第四步  掛載

在掛載之前要新建一個文件夾來作為掛載點

 mkdir  /test

mount  /dev/sdb1  /test

[root@localhost /]# mkdir /test      
[root@localhost /]# mount /dev/sdb1 /test #掛載
[root@localhost /]# df -h #查看磁盤分配空間
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/cl-root   17G  5.2G   12G   31% /
devtmpfs             473M     0  473M    0% /dev
tmpfs                489M  144K  489M    1% /dev/shm
tmpfs                489M  7.1M  482M    2% /run
tmpfs                489M     0  489M    0% /sys/fs/cgroup
/dev/sda1           1014M  173M  842M   18% /boot
tmpfs                 98M   20K   98M    1% /run/user/0
/dev/sdb1             97M  5.2M   92M    6% /test

 第五步  寫入系統文件開機自啟

echo  “/dev/sdb1  /test  xfs  defaults  0   0 ” >>  /etc/fstab

/dev/sdb1 ——要掛載的分區設備

/test——掛載點

xfs——文件系統類型

第一個 0 ——是否備份

第二個 0 ——是否檢測

defaults——掛載選項

 

添加交換分區

  SWAP(交換)分區是一種通過在硬盤中預先划分一定的空間,然后將把內存中暫時不常用的數據臨時存放到硬盤中,以便騰出物理內存空間讓更活躍的程序服務來使用的技術,其設計目的是為了解決真實物理內存不足的問題。但由於交換分區畢竟是通過硬盤設備讀寫數據的,速度肯定要比物理內存慢,所以只有當真實的物理內存耗盡后才會調用交換分區的資源。

第一步  新建磁盤分區

fdisk  /dev/sdb

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分區號 (2-4,默認 2):
起始 扇區 (10487808-41943039,默認為 10487808):
將使用默認值 10487808
Last 扇區, +扇區 or +size{K,M,G} (10487808-41943039,默認為 41943039):+5G
分區 2 已設置為 Linux 類型,大小設為 5 GiB

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

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x6c292b76

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux

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

 

第二步 格式化操作

   mkswap /dev/sdb2

[root@localhost /]# mkswap /dev/sdb2
正在設置交換空間版本 1,大小 = 5242876 KiB
無標簽,UUID=c63f4ad4-00b7-48d4-87d6-caf88d96df08

第三步 掛載使用

swapon   /dev/sdb2  swap設備是掛載到設備里面的,所以不用加掛載點

[root@localhost /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        487M         86M        8.6M        402M        273M
Swap:          2.0G          0B        2.0G
[root@localhost /]# swapon /dev/sdb2
[root@localhost /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        491M         83M        8.6M        402M        270M
Swap:          7.0G          0B        7.0G

第四步  寫在系統里

echo “/dev/sdb2   swap  swap  defaults  0   0”  >> /etc/fstab

 

第五步  停止swap

   swapoff  /dev/sdb2

或者 swapoff   -a

              total        used        free      shared  buff/cache   available
Mem:         999936      499740       90608        8836      409588      279980
Swap:       2097148           0     2097148
[root@localhost /]# swapoff -a
[root@localhost /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           976M        486M         89M        8.6M        399M        274M
Swap:            0B          0B          0B

 

LVM ——邏輯卷管理器

在現實生活中,我們常用來存放數據的磁盤不夠大了怎么辦,,比如一開始規划主機的時候只給了100GB,但用戶眾多之后發現這個文件系統不夠大,此時能怎么做,我相信大多數的朋友都是再加一塊新硬盤,然后重新格式化,再將原硬盤數據拷貝過來,然后將原來的分區卸載重新掛載新的分區,如果下一次又不夠了呢,隨着數據越來越多工作量會越來越大,是不是聽上去都很麻煩呢?那么LVM這玩意的作用就體現出來了。

什么是LVM:PV、PE、VG、LV

  LVM的全名是 Logical  Volume Manager ,中文翻譯是邏輯卷管理器,是一種可以彈性的調節文件系統的容量的管理器,而不在調整性能與數據安全上面,那是RAID的工作可不要搞混了!它是在硬盤分區和文件系統之間添加了一個邏輯層,它提供了一個抽象的卷組(VG),可以把多塊硬盤進行卷組合並再經過划分成為可使用的分區(LV),就可以進行掛載使用了。

物理卷(Physical  Volume  PV)

  物理卷就是LVM的基本存儲邏輯塊,我們實際的分區(disk)需要調整系統標識符(system ID)成為8e(LVM的標識符),然后再經過 pvcreat 的命令將它轉化為LVM最底層的物理卷(PV),之后才能講這些PV加以利用。

卷組(Volume  Group, VG)

  所謂的LVM大磁盤就是將許多的PV整合成這個VG,所以VG就是LVM組合起來的超大磁盤,那么這個磁盤最大可以到多大容量呢,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM