linux磁盤管理

1.磁盤分區知識

磁盤分區知識的重點:java

(1)給磁盤分區的實質就是針對硬盤的0磁頭0磁道1扇區的前446字節後面接下來的64bytes的分區表進行設置,即主要是劃分起始以及結束磁頭號、扇區號和柱面號。node

(2)給磁盤分區的工具是fdisk(適合給小於2T的磁盤分區),parted(擅長給大於2T的磁盤分區,也能夠給小於2T的磁盤分區),首選fdisk,只有大於2T時纔會去選partedlinux

(3)一塊磁盤的分區表僅有64個bytes大小,每一個分區表要佔用16個字節,所以一塊磁盤支持四個分區表信息,即主分區+擴展分區的總量不超過4個。數據庫

(4)磁盤分區是按柱面進行劃分的。緩存

(5)擴展分區不能直接使用,還須要在擴展分區的基礎上建立邏輯分區才行。安全

(6)擴展分區有本身的分區表所以擴展分區下面的邏輯分區有多個。服務器

1.1磁盤分區注意事項要點

一塊硬盤的分區方式以下組合之一less

(1)任意多個主分區,但要求1<=主分區數量<=4運維

例如:一塊硬盤能夠分爲4個主分區3個主分區2個主分區或者1個主分區ide

(2)擴展分區能夠和主分區組合,但要求2<=(主分區+擴展分區)數量<=4

例如:3個主分區+1個擴展分區或者2個主分區+1個擴展分區或1個主分區+1個擴展分區。當總分區的數量大於4個的時候,必須提早分一個擴展分區。

(3)若是要分紅四個磁盤分區的話,那最多能夠有兩種:

P+P+P+P

P+P+P+E

其中的P爲主分區Primary,E爲擴展分區Extended

1.2有關邏輯分區的幾個問題範例

範例1:若是要將一塊大硬盤暫時分紅四個分區,同時,還但願有其餘的空間可讓我在將來須要的時候再進行分區,那麼該如何分區?

3P+1E剩下的空間保留

2P+1E剩下的空間保留

1P+1E剩下的空間保留

範例2:一臺機器6塊600g硬盤,raid5後總大小3T,此時沒法裝系統爲何?

系統盤大於2T是不能裝系統的

解決辦法:

方法1:作raid5後,不要重啓裝系統,而是在raid 界面,繼續分一個小的虛擬磁盤vd 200G,用這個200G的虛擬磁
盤裝系統,裝完系統後再把剩下的2.8T經過parted分區。

方法2:先拿一塊盤raid0,剩下5塊作raid5,在raid0裝系統。

方法3:裝系統時經過gpt分區格式,便可安裝系統。

範例3:假若有一塊SAS硬盤,要想把磁盤分紅6個可使用的磁盤分區,那麼每一個磁盤分區再linux系統下的數字編號是多少?

說明:

因爲硬盤在Primary+Extended最多能夠有四個,所以在linux系統下,會默認將1~4的分區編號保留下來給主分區和擴展分區使用,邏輯分區不能夠佔用1-4分區編號。
因此因爲要求的分區總數爲6個,必須有一個擴展分區,主分區能夠有1-3個,可是不管分幾個主分區邏輯分區的編號都會從5開始計算。

若是是1P+1E,則分區編號爲:/dev/sda1,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8,/dev/sda9

若是是2P+1E,則分區編號爲:/dev/sda1,/dev/sda2,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8

若是是3P+1E,則分區編號爲:/dev/sda1,/dev/sda2,/dev/sda3,/dev/sda5,/dev/sda6,/dev/sda7

1.3磁盤分區的設備名

IDE硬盤:IDE接口的硬盤稱爲/dev/hda

SATA,SAS硬盤:SCSI接口的硬盤稱爲/dev/sda

在linux系統中,是經過設備名來訪問設備的,訪問名存放在「/dev」目錄中。

設備名稱的定義規則以下,其餘的分區能夠以此類推:

系統的第一塊IDE接口硬盤稱爲/dev/hda

系統的第二塊IDE接口硬盤稱爲/dev/hdb

系統的第一塊SCSI接口硬盤稱爲/dev/sda

系統的第二塊SCSI接口硬盤稱爲/dev/sdb

每一個分區則使用磁盤名稱對應的編號表示,如:

系統的第一塊IDE接口硬盤的第1個分區稱爲/dev/hda1

系統的第二塊IDE接口硬盤的第1個分區稱爲/dev/hdb1

系統的第一塊SCSI接口硬盤的第1個分區稱爲/dev/sda1

系統的第二塊SCSI接口硬盤的第一個分區稱爲/dev/sdb1

注意:

一、分區數字編號1~4留給主分區和擴展分區,邏輯分區編號只能從5開始。

二、IDE硬盤設備名稱均以/dev/hd開頭不一樣硬盤編號以此是/dev/had、/dev/hdb。

三、SCSI/SAS/SATA/USB接口硬盤的設備名均以/dev/sd開頭,不一樣硬盤編號依次是/dev/sda,
/dev/sdb,/dev/sdc…

1.4linux系統對分區的要求

一、最少要有「/」根分區和swap分區。

二、swap(交換分區)的做用:虛擬內存,swap分區的大小=1.5*物理內存容量,若是內存大於8-16G做爲swap便可。

三、建議設置獨立的/boot分區。

linux引導分區,存放系統引導文件,如linux內核等,全部文件大小隻有幾十M,所以該分區設置100-200M,通常服務器的分區方式:「/boot」,「swap」「/」三個分區。

2.raid陣列卡

基本做用:網站數據量很大的時候,單塊盤裝單個盤存放不下了,購買多塊盤,又不想單個盤存放數據,就須要工具把全部的硬盤整合成一個大磁盤,再在這個大磁盤上分區(虛擬磁盤)存放數據。
它的另一個功能就是多塊盤放在一塊兒能夠冗餘(備份)。

1byte=8bit 1K=1024byte 1M=1024K

1G=1024M 1T=1024G 1PB=1024T

RAID有多種整合方式,RAID 0 1 5 10

有RAID卡後,通常磁盤就會插到RAID卡上,而不是直接插到主板上了。

互聯網公司服務器會自帶RAID卡(自帶主板,獨立RAID卡),RAID卡上也有緩存。

冗餘從好到壞:raid1 raid10 raid5 raid0

性能從好到壞:raid0 raid10 raid5 raid1

成本從低到高:raid0 raid5 raid1 raid10

互聯網公司:

單臺服務器,很重要可是盤很少,系統盤就用raid1。

數據庫服務器,主庫raid10,從庫raid5/raid0(爲了維護成本,raid10)。

Web服務器,若是沒有太多數據的話,raid5,raid0(單盤)。

2.1 raid級別

linux磁盤管理

2.2 RAID 0 1 5 10的區別?

RAID 0(條帶):寫入RAID陣列的數據被分紅了「組塊」各類組塊在構成陣列的驅動器均勻分佈。

linux磁盤管理

RAID 1(鏡像模式):如同「鏡像」這一名稱暗示的同樣,在鏡像中,寫入一個磁盤的數據被複制到了第二塊磁盤上(被稱爲「鏡像磁盤」)。

linux磁盤管理

RAID 4(帶校驗的條帶):linux內核支持的這種配置試圖集中前兩個RAID級別的優點:經過平行寫入數據獲取速度,而又能對損壞有着很強的可靠性。把一個額外的磁盤做爲「校驗盤」,能夠得到這種可靠性。

linux磁盤管理

RAID 5(條帶+分佈校驗):RAID 5 在功能上與RAID 4 徹底同樣,可是解決了校驗盤上的瓶頸問題。RAID 5 不是專門把一塊磁盤用於校驗,而是讓校驗信息均勻地分佈在全部組成磁盤中。

linux磁盤管理

RAID 10:最少四塊硬盤,將四塊硬盤分紅兩組,每兩組作RAID 1,而後兩組RAID 1作RAID 0。

2.3 什麼是LVM?

LVM全稱(Logic Volume Management)邏輯卷管理,它的最大用途是能夠靈活的管理磁盤的容量,讓磁盤分區能夠隨意放大和縮小,便於更好的應用磁盤的剩餘空間,若是強調性能和備份那麼仍是應該使用raid功能,而不是LVM。

用RAID最直接的好處是:

(1)提高數據安全性。

(2)提高數據的讀寫性能。

(3)提供更大的單一邏輯磁盤數據容量存儲。

3.fdisk磁盤分區命令實戰

3.1 fdisk交互式分區

添加一塊100M的硬盤

linux磁盤管理

(1)先用fdisk –l查看

[root@linzhongniao ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00045e4d
   Device Boot  Start End  Blocks   Id  System
/dev/sda1   *   1  26  204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2  261046 8192000   83  Linux
/dev/sda310461237 1536000   82  Linux swap / Solaris
/dev/sda41237261111037696   83  Linux
Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

(2)fdisk分區

fdisk 接磁盤設備

[root@linzhongniao ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x78ca99bb.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 switch off the mode (command 'c') and change display units to
 sectors (command 'u').

Command (m for help):

這個地方提示:要用fdisk –cu命令

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
 switch off the mode (command 'c') and change display units to
 sectors (command 'u').
警告:與dos兼容模式已被棄用。
這是強烈推薦
關閉模式(命令'c')並將顯示單元更改成
部門(命令「u」)。

(3)fdisk –cu方式分區

[root@linzhongniao ~]# fdisk -cu /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x90d74776.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):

在這個地方輸入m(menu),m是菜單的意思

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   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
   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)

按n建立分區

linux磁盤管理

按e建立擴展分區:分區方式錯誤演示

linux磁盤管理

linux磁盤管理

輸入p查看分區

linux磁盤管理

這就不能建立擴展分區了由於沒有e,要先建立主分區,擴展分區最多不能超過3個。

linux磁盤管理

(3)建立分區先建立主分區再建立擴展分區

建立主分區

[root@linzhongniao ~]# fdisk -cu /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xc6e370f5.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition《==刪除一個分區
   l   list known partition types   《==查看分區類型及對應的id
   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《==改變分區系統的ID建立swap分區
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit《==保存並退出,沒有動數據,動的是64位字節分區表
   x   extra functionality (experts only)
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)這裏按p建立主分區
p
Partition number (1-4):

輸入1,會看到第一分區的起始位置默認設計從2048開始的,直接敲回車默認建立的分區從2048開始。

Partition number (1-4): 1
First sector (2048-208895, default 2048):

而後能夠給結束的扇區也能夠用「+」加號,這裏咱們加10M

linux磁盤管理

linux磁盤管理

接着用上面的方法建立一個編號爲2的主分區,大小爲10兆

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First sector (22528-208895, default 22528): 
Using default value 22528
Last sector, +sectors or +size{K,M,G} (22528-208895, default 208895): +10M

Command (m for help): P

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc6e370f5

   Device Boot  Start End  Blocks   Id  System
/dev/sdb12048   22527   10240   83  Linux
/dev/sdb2   22528   43007   10240   83  Linux

好下來咱們建立2個10M的主分區,共建立四個主分區,再接着建立分區會怎麼樣?會提示您必須刪除一些分區,並首先添加一個擴展分區。「You must delete some partition and add an extended partition first」 由於擴展能夠分多個,主分區只能分四個這是受分區表控制的。

linux磁盤管理

刪除分區用d

linux磁盤管理

好上面已經分了三個主分區了,把剩下的分區都給擴展分區,輸入n,按e直接按回車

linux磁盤管理

建立邏輯分區,分區編號從5開始

linux磁盤管理

3.2 建立LVM分區

若是想用LVM就要查看分區類型了,默認的linux分區是83,而LVM的分區類型是8e

linux磁盤管理

創建LVM(邏輯卷)類型的分區就要改變分區系統類型的ID了,以下所示建立LVM類型分區

Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3202f5e9

   Device Boot  Start End  Blocks   Id  System
/dev/sdb12048   22527   10240   83  Linux
/dev/sdb2   22528   43007   10240   83  Linux
/dev/sdb3   43008   63487   10240   83  Linux
/dev/sdb4   63488  208895   727045  Extended
/dev/sdb5   65536   86015   10240   8e  Linux LVM
保存按w寫入分區表
Command (m for help):  p

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3202f5e9

   Device Boot  Start End  Blocks   Id  System
/dev/sdb12048   22527   10240   83  Linux
/dev/sdb2   22528   43007   10240   83  Linux
/dev/sdb3   43008   63487   10240   83  Linux
/dev/sdb4   63488  208895   727045  Extended
/dev/sdb5   65536   86015   10240   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

用partprobe命令通知系統內核分區已經改變

linux磁盤管理

3.3 fdisk非交互式分區

[root@linzhongniao ~]# cat fdisk.txt
n
p
1
+10M
w
q

[root@linzhongniao ~]# fdisk /dev/sdb<fdisk.txt

3.4 fdisk分區工具介紹

a.linux下最經常使用的分區工具,通常是裝完系統後進行分區,裝系統以前的分區都用系統ISO裏面的工具分,或者raid裏的分小磁盤。

b.fdisk只能root權限用戶使用。

c.fdisk適合於對裝系統後的剩餘空間進行分區,例如:安裝系統時沒有所有分區,或者安裝系統後添加分區。

d.不能對於大於2T的文件系統進行分區

e.fdisk分區的實質是修改0磁頭0磁道1扇區的前446字節以後的64字節的分區表信息,不破壞數據。可使用fdisk分區的磁盤大小必須小於2T,若是大於2T或者小於2T的,分區要用parted

3.5 查看分區

查看分區用fdisk –l

[root@linzhongniao ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00045e4d

   Device Boot  Start End  Blocks   Id  System
/dev/sda1   *   1  26  204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2  261046 8192000   83  Linux
/dev/sda310461237 1536000   82  Linux swap / Solaris
/dev/sda41237261111037696   83  Linux

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3202f5e9

   Device Boot  Start End  Blocks   Id  System
/dev/sdb1   2  11   10240   83  Linux
/dev/sdb2  12  21   10240   83  Linux
/dev/sdb3  22  31   10240   83  Linux
/dev/sdb4  32 102   727045  Extended
/dev/sdb5  33  42   10240   8e  Linux LVM

也能夠查看/proc/partitions文件

[root@linzhongniao ~]# cat /proc/partitions 
major minor  #blocks  name
   80   20971520 sda
   81 204800 sda1
   828192000 sda2
   831536000 sda3
   84   11037696 sda4
   8   16 104448 sdb
   8   17  10240 sdb1
   8   18  10240 sdb2
   8   19  10240 sdb3
   8   20  1 sdb4
   8   21  10240 sdb5

4.parted分區工具的使用

傳統的MBR分區方式,有一個侷限:
沒法使用超過2T的硬盤的分區(或單個分區超過2T),若是大於2T就要用GPT分區的理念。
parted的操做都是實時的也就是說執行了一個分區命令,他就實實在在的分區了,而不像是fdisk那樣按w才建立分區。

4.1 parted分區實踐

實驗:準備一塊100M的盤

(1)交互式分區

[root@linzhongniao ~]# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

輸入help看相關的命令

Welcome to GNU Parted! Type 'help' to view a list of commands.  
(parted) help 
  align-check TYPE Ncheck partition N for TYPE(min|opt)
alignment
  check NUMBER do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]   print general help, or help on
COMMAND
  mklabel,mktable LABEL-TYPE   create a new disklabel (partition
table)
  mkfs NUMBER FS-TYPE  make a FS-TYPE file system on
partition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END   make a partition
  mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
  move NUMBER START ENDmove partition NUMBER
  name NUMBER NAME name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER] display the partition table,
available devices, free space, all found partitions, or a particular
partition
  quit exit program
  rescue START END rescue a lost partition near START
and END
  resize NUMBER START END  resize partition NUMBER and its file
system
  rm NUMBERdelete partition NUMBER
  select DEVICEchoose the device to edit
  set NUMBER FLAG STATEchange the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]   toggle the state of FLAG on partition
NUMBER
  unit UNITset the default unit to UNIT
  version  display the version number and
copyright information of GNU Parted

先調一下分區的類型改爲gpt,修改分區類型用mklabel命令

(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes

建立一個10M主分區

(parted) mkpart primary 0 10
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore 
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End SizeFile system  Name Flags
 1  17.4kB  10.0MB  9983kB   primary

`(parted)`

分一個10M交換分區swap

(parted) mkpart primary linux-swap 11 21
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore 
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End SizeFile system  Name Flags
 1  17.4kB  10.0MB  9983kB   primary
 2  11.0MB  21.0MB  10.0MB   primary

分一個10M的邏輯分區(這個地方比較特殊不用建立擴展分區)

(parted) mkpart logical ext4 22 32
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore 
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End SizeFile system  Name Flags
 1  17.4kB  10.0MB  9983kB   primary
 2  11.0MB  21.0MB  10.0MB   primary
 3  22.0MB  32.0MB  10.0MB   logical

刪除分區,用rm

提示:咱們只關注mkpart命令和rm刪除分區命令便可

(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End SizeFile system  Name Flags
 1  17.4kB  10.0MB  9983kB   primary
 2  11.0MB  21.0MB  10.0MB   primary
 3  22.0MB  32.0MB  10.0MB   logical

(parted) rm 3 
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End SizeFile system  Name Flags
 1  17.4kB  10.0MB  9983kB   primary
 2  11.0MB  21.0MB  10.0MB   primary

(2)非交互式建立分區

parted /dev/sdb mklabel gpt yes
parted /dev/sdb mkpart primary 0 10 Ignore
parted /dev/sdb mkpart primary linux-swap 11 12 Ignore
parted /dev/sdb mkpart logical ext4 22 32 Ignore
parted /dev/sdb p

演示:

[root@linzhongniao ~]# parted /dev/sdb mklabel gpt yes
Warning: The existing disk label on /dev/sdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Information: You may need to update /etc/fstab.   
[root@linzhongniao ~]# parted /dev/sdb mkpart primary 0 10 Ignore
Warning: The resulting partition is not properly aligned for best performance.
Information: You may need to update /etc/fstab.   
[root@linzhongniao ~]# parted /dev/sdb mkpart primary linux-swap 11 12 Ignore   
Warning: The resulting partition is not properly aligned for best performance.
Information: You may need to update /etc/fstab. 
[root@linzhongniao ~]# parted /dev/sdb mkpart logical ext4 22 32 Ignore
Warning: The resulting partition is not properly aligned for best performance.
Information: You may need to update /etc/fstab.
[root@linzhongniao ~]# parted /dev/sdb p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number  Start   End SizeFile system  Name Flags
 1  17.4kB  10.0MB  9983kB   primary
 2  11.0MB  12.0MB  1000kB   primary
 3  22.0MB  32.0MB  10.0MB   logical

5.交換內存空間swap分區的構建(瞭解)

5.1 使用物理分區建立swap

可使用一個分區構建swap,也可使用dd建立一個swap

[root@linzhongniao ~]# fdisk -cu /dev/sdb  分紅一個區/dev/sdb1
用mkswap格式化分區命令,把普通分區/dev/sdb1格式化成swap分區

查看一下內存

linux磁盤管理

添加swap分區

linux磁盤管理

關掉swap分區

swapoff  /dev/sdb1

5.2 使用文件建立swap

dd的只是一個特殊文件,它佔用磁盤的分區

[root@linzhongniao ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 1.8708 s, 71.7 MB/s
[root@linzhongniao ~]# ls -lh /tmp/swap 
-rw-r--r--. 1 root root 128M Jul 19 20:30 /tmp/swap

格式化分區

linux磁盤管理

添加swap分區

linux磁盤管理

[root@linzhongniao ~]# swapon /tmp/swap

linux磁盤管理

5.3 企業案例

企業案例場景:

swap在工做中,特別是java環境,程序寫的有問題,會發生內存泄露,swap分區可能會被佔用。

linux磁盤管理

解決辦法:
讓開發改程序,運維臨時加大swap分區,就是用上面的方法。不用重啓系統能夠先用swapoff,再用swapon。

6.文件系統知識

6.1 文件系統知識回顧

inode是當磁盤備份區格式化的時候誕生的,格式化分區的實質是建立文件系統,對於ext一、二、三、4文件系統格式化以後就會生成必定數量的inode和block。

6.2 文件系統知識準備

(1)分區與文件系統的關係

經過fdisk命令對一個磁盤進行分區後,並不能直接掛在目錄存放數據實體,還須要進行格式化操做,才能進行掛載並存放數據。

爲何須要格式化呢?這是由於磁盤分區在沒有格式化以前,操做系統是沒法識別系統上磁盤分區格式的,也就沒法存取文件目錄屬性和權限等內容。分區就至關於給房子打隔斷並不破壞數據,文件系統就是裝修。

(2)ext2的文件系統細節

操做系統中的數據分爲文件內容和文件屬性兩部分,文件系統內容就是文件的實體數據(block裏面),而文件屬性就是文件類型、權限、屬主、修改信息等,還包括一個指針。

文件系統會將文件的屬性內容存放到磁盤系統的inode中。操做系統還會記錄文件系統的總體信息與superblock(存放文件系統的元數據信息)中,這個superblock包括整個文件系統的inode和block的總的數量。

(3)什麼是文件系統

文件系統就是一種存儲和組織計算機數據文件的機制或方法,它使得對計算機文件系統內數據的訪問和查找變得更容易、簡單,如ext二、ext三、ext四、xfs(Centos 7.x)、zfs和nfs都是文件系統。

6.3 ext2文件系統的組成

linux磁盤管理

這些內容均可以用dumpe2fs來查看

[root@linzhongniao ~]# dumpe2fs /dev/sdb1|less

linux磁盤管理

超級組塊記錄的信息:

超級塊:記錄文件系統的控制和管理信息

block和inode的個數和大小,及其已用和未用數量

文件系統的載入時間、最近一次寫入數據的時間、最近一次執行fsck進行磁盤檢查的時間等。

有效位:爲0已載入,爲1未載入

組描述:記錄本塊組從何處開始

塊位示圖:使用位示圖記錄inode的使用狀況。

inode區:各inode組成的區域,每一個inode都有一個惟一編號

數據塊區:各block組成的區域,用於存放文件數據

6.4 文件系統選型簡單介紹

SAS/STAT硬盤文件系統選擇:

a.xfs有關門戶的數據庫MySQL的業務

b.ext4 視頻,流媒體。數據庫,小文件業務也能夠,能夠用默認的

c.ext2 沒有日誌,藍汛的cache業務,CDN網站加速服務的

常規應用:

對於Centos5.x系列,常規應用就選默認的ext3文件系統便可。

對於Centos6.x系列,常規應用就選默認的ext3文件系統便可。

對於Centos7.x系列,常規應用就選默認的xfs文件系統便可。

查看支持的文件系統的格式

[root@linzhongniao ~]# ls /lib/modules/`uname -r`/kernel/fs
autofs4 configfs  exportfs  fat  jbdmbcache.ko  nls   xfs
btrfs   cramfsext2  fscache  jbd2   nfs squashfs
cachefiles  dlm   ext3  fuse jffs2  nfs_common  ubifs
cifsecryptfs  ext4  gfs2 lockd  nfsdudf

操做系統支持不表明文件系統軟件已經安裝了,格式化不支持mkfs;那就須要安裝文件系統軟件

[root@linzhongniao ~]# mkfs
mkfs  mkfs.ext2 mkfs.ext4 mkfs.msdos
mkfs.cramfs   mkfs.ext3 mkfs.ext4dev  mkfs.vfat

6.5 linux磁盤格式化和掛載命令

格式化命令mkfs參數:

-b 指定塊設備大小默認是4096

-i 指定inode大小默認是256

-t 指定文件系統至關於mkfs.ext4(2或3)

[root@linzhongniao ~]# mkfs
mkfs  mkfs.ext2 mkfs.ext4 mkfs.msdos
mkfs.cramfs   mkfs.ext3 mkfs.ext4dev  mkfs.vfat

格式化完成以後會出現下面內容,執行下面命令

linux磁盤管理

tune2fs –c -1 /dev/…

掛載:mount

參數:

-t 指定文件系統類型

7.磁盤管理命令複習總結

磁盤與目錄的容量:df du

df:列出文件系統的整個磁盤使用量

du:評估文件系統的磁盤使用量(經常使用於評估目錄所佔容量)

(1)將掛載後容量結果以易讀的容量格式顯示出來查看的是block:df –h

(2)將掛載後的各個分區中可用的inode數量列出:df –ih

(3)df –hT,查看掛載狀況,顯示文件系統類型

(4)查看/proc/mounts文件也能夠查看掛載狀況

(5)查看分區查看/proc/partitions文件

(6)查看文件系統的內部細節 dumpe2fs /dev/sdb1

(7)磁盤檢查用fsck(ext2文件系統用e2fsck),當磁盤出現故障了可當作磁盤檢查,可是注意:沒壞的磁盤必定不要用,通常是機器起不來了,磁盤有壞道。fsck –C –f ext3 /dev/sdb1

(8)tune2fs 列出/dev/sdb1的super block內容。tune2fs –l(小寫的L) /dev/sdb1

(9)查看磁盤設備的UID 和文件系統類型,blkid /dev/sdb1

(10)megacli查看raid的信息,監控raid會用到

(11)ipmitools 查看硬件信息的工具,監控硬件的時候會用到

(12)resize2fs調整文件系統的大小(LVM,drbd擴容)

8.設置開機掛載

將/dev/sdb1每次開機自動掛載/tmp/sdb1

編輯/etc/fstab

[root@linzhongniao ~]# tail -1 /etc/fstab
UUID=d9e7daa8-34f0-4b9a-825b-e2aa49a03921 /tmp/sdb1 ext4 defaults  0 0

寫入:/dev/sdb1(掛載的設備也能夠是UID,用blkid查看) /tmp/sdb1(掛載點) ext4(文件系統類型) dufaults(掛載的參數選項) 0(是否備份,設置成 1或2備份) 0(是否開機檢查,至關於fsck)

相關文章
相關標籤/搜索