Linux運維之磁盤管理

磁盤管理

計算機是由五大組成部件:輸入設備,輸出設備,存儲器,運算器,控制器,其中輸入設備我們稱之為I/O設備,如鍵盤,掃描器,運算器和控制稱之為cpu,存儲器如,內存,硬盤,優盤。計算機其實只需要內存和cpu其實已經可以完成工作了,但是內存屬于隨機存儲設備,斷電之后就丟失數據,所以我們就需要通過其他的輔助存儲設備來彌補內存的不足,這些輔存我們稱之為外存。

linux中,一切皆文件,因此linux所有設備的操作都是通過文件接口來實現的,也就是在訪問設備的時候就如同訪問一個文件一樣,因為他們使用的都是文件系統接口。磁盤管理的操作就是通過操作磁盤來改寫設備文件來實現,那么接下來就講講設備文件

設備文件分為兩類:

塊設備:block,存儲單位是塊,隨機訪問的設備,如硬盤

字符設備:char,存儲單位是字符,線性的設備,如鍵盤

每個設備都有一個文件作為它的訪問入口,此文件我們稱之為設備文件,該文件關聯至一個設備驅動程序,進而能夠與之對應的硬件設備進行通信。在linux系統中每個設備都是在內核集中,都是靠一個設備號來進行標識的。

設備編號

用來標識設備,不同類別的設備有不同的設備號,同一類別的設備有不同的設備或多個設備,因此就有主設備號和次設備號。

主設備號:major number,表示設備類型,用于標明設備所需的驅動程序

次設備號:minor number標識同一類型下的不同設備,特種設備的訪問入口

我們可以通過ls –l  /dev/*來查看設備的編號

1.jpg

 

磁盤接口類型

并口:

         IDE:133MB/s

         SCSI:640MB/s

串口:

         SATA6Gbps

         SAS:6Gbps

         USB:480MB/s

每種接口其傳輸速率也是不同的

     2.jpg

磁盤設備的設備文件命令

這些磁盤的設備文件放在/dev/目錄下

IDE/dev/hd[a-z]

第一個IDE

主:/dev/hda   從:/dev/hdb

第二個IDE

主:/dev/hdc    從:/dev/hdd

SCSI,SATA,SAS,USB等接口類型的硬盤都是以/dev/sd[a-z]來命名的

第一塊硬盤表示為/dev/sda 第二塊硬盤位:/dev/sdb依次類推

同一設備上的不同分區,1,2……

/dev/sda1第一塊硬盤的第一個分區,依次類推第二個分區/dev/sda2 ,/dev/sda5第一塊硬盤的第一個邏輯分區

     

※硬盤結構 

硬盤是由盤片,軸,馬達,機械臂,和磁頭組成,盤片固定在旋轉軸上,馬達帶動軸進行訓傳,機械臂上裝有磁頭,磁頭是懸浮在盤片上的,用來讀寫盤片上的數據,機械臂可以伸縮來進行尋到

每個盤片上被分成n個同心圓,稱之為磁道,是真正用來存儲數據的地方,至于磁道上能存儲多少數據,取決硬盤制造商的工藝。

現在的硬盤都是雙面讀寫的,所謂雙面是一個盤片上的上下兩面均可讀寫;每個盤面上相同位置都會有一個相同的編號,所有相同編號的磁道稱之為柱面。磁盤上的每個磁道被等分成若干個弧段,這些弧段我們稱之為磁盤的扇區。每個扇區的大小為512個字節

     3.jpg

    6.jpg

為什么要分區?

1.         優化I/O性能

2.         實現磁盤空間配額限制

3.         提高修復速度

4.         隔離系統和程序

5.         安裝多個OS

 

※分區

根據硬盤的結構分析,所有的磁頭都是一起同時運動的,如果要讀寫一個文件數據的時候,只是在一個盤面上進行操作要比同時在其他所有盤面上操作花費的時間要長,另外根據物理運動原理,外側磁道的讀寫速度要比內側磁道的讀寫速度快很多,這是因為單位時間內磁頭在盤面上滑過的距離要長,因此磁盤的分區是根據柱面來劃分的。

每個盤面上一個柱面只能屬于一個分區,而且由外向內多個柱面組合成一個分區來使用,因此越靠外的柱面其讀寫速率越高,這也正是越靠近外側的分區其讀寫速度越快的原因。在硬盤上有一個叫做0磁道0扇區是被預留出來的,它不屬于任何分區,這個扇區稱之為MBRMaster Boot Record),嚴格來說它是用來存儲MBR的一段空間

 

MBR

該扇區的大寫為512bytes,專門用來存儲MBR(主引導記錄)MBR又被分為三部分:

    446bytes:前446個字節存儲的是引導加載器boot loader

    64bytes:存儲分區表,有多少個分區,每個分區從哪里開始到哪里結束,其中每16bytes標識一個分區,因此,一塊硬盤最多只能有4個主分區。

    4個主分區:3個主分區+1擴展分區(n個邏輯分區)

    2bytes:前面信息的有效標識,用4個十六進制數來表示55AA,表示前面510bytes是有效的。

 

MBR分區結構

     7.jpg

 

GPT分區

GPT:GUID patition table 支持128個主分區,使用64位,支持8Z512Byte/block64Z4096Byte/block,使用128UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位,只有支持UEFI(同意擴展固件接口)硬件支持GPT

8.jpg

 

※管理分區

列出塊設備

     blkid

     /dev/sda1: UUID="ff619e21-e6f7-4e9e-aff1-bbe13123764e" TYPE="ext4"

創建分區使用:

fdisk創建MBR分區,也支持GPT,最多只能管理15分區

gdisk創建GPT分區

GNU parted高級分區操作(創建、復制、調整大小等等)

partprobe重新設置內存中的內核分區表版本

 

磁盤分區管理工具

fdisk parted sfdisk

查看分區情況

fdisk –l  /dev/device

創建分區 /dev/device

fdisk創建分區是一個交互式界面,有許多子命令

p顯示分區列表

t更改分區類型

n創建新分區

d刪除分區

w保存并退出

q不保存退出

l列出所有的系統類型

QQ截圖20160825152104.jpg

查看內核是否已經識別新分區:cat /proc/partitions

對于已經處于使用狀態的磁盤來講,新建分區后需要讓內核重讀其分區表


 centos5之前

 partprobe  /dev/device 

 centos6、7   

新增分區

 partx  -a  /dev/device          

 kpartx -af  /dev/device 

刪除分區:

partx –d –n M:N /dev/device

partx –d  nr  N-M  /dev/device

 

 

parted命令

parted命令有兩種運行模式:命令模式和交互模式,與fdisk的交互模式不同,在parted的交互模式下執行命令,一旦執行回車確認,命令就馬上執行,對磁盤的更改就理科生效。

parted命令的常用格式

parted [選項] <硬盤設備名交互模式,在該模式下輸入parted的子命令對其指定的硬盤進行分區操作。quit命令用于退出交互模式

parted [options] [device [command [options…]…]]命令模式,直接在命令行對指定的硬盤進行

 

分區操作

-h –help 顯示幫助信息

-I –interactive 在必要時提示用戶

-l –list 顯示所有磁盤的分區表

-s –script 從不提示用戶

-v –version 顯示版本

parted.jpg

 

 

 ※文件系統

文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。

從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。

Linux文件系統

ext2EXT2第二代擴展文件系統(英語:second extended filesystem,縮寫為 ext2),是LINUX內核所用的文件系統。它開始由Rémy Card設計,用以代替ext,于19931月加入linux核心支持之中。ext2 的經典實現為LINUX內核中的ext2fs文件系統驅動,最大可支持2TB的文件系統,至linux核心2.6版時,擴展到可支持32TB。其他的實現包括GNU HurdMac OS X (3),Darwin (3),BSDext2為數個LINUX發行版的默認文件系統,如Debian、Red Hat Linux

ext3EXT3是第三代擴展文件系統(英語Third extended filesystem,縮寫為ext3),是一個日志文件系統,常用于Linux操作系統。它是很多Linux發行版的默認文件系統Stephen Tweedie19992月的內核郵件列表中,最早顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合并到內核主線中。如果在文件系統尚未shutdown前就關機如(停電)時,下次重開機后會造成文件系統的資料不一致,故這時必須做文件系統的重整工作,將不一致與錯誤的地方修復。然而,此一重整的工作是相當耗時的,特別是容量大的文件系統,而且也不能百分之百保證所有的資料都不會流失。為了克服此問題,使用所謂日志式文件系統 Journal File System。此類文件系統最大的特色是,它會將整個磁盤的寫入動作完整記錄在磁盤的某個區域上,以便有需要時可以回溯追蹤。由于資料的寫入動作包含許多的細節,像是改變文件標頭資料、搜尋磁盤可寫入空間、一個個寫入資料區段等等,每一個細節進行到

ext4EXT4是第四代擴展文件系統(英語Fourth extended filesystem,縮寫為 ext4)是Linux系統下的日志文件系統,是ext3文件系統的后繼版本,一些新功能違背向后兼容性,新功能使Ext3代碼變得更加復雜并難以維護,新加入的更改使原來十分可靠的Ext3變得不可靠。

xfs:XFS一種高性能的日志文件系統,最早于1993年,由Silicon Graphics為他們的IRIX操作系統而開發,是IRIX 5.3版的默認文件系統。2000年5月,Silicon GraphicsGNU通用公共許可證發布這套系統的源代碼,之后被移植到Linux 內核上。XFS 特別擅長處理大文件,同時提供平滑的數據傳輸。XfS文件系統是SGI開發的高級日志文件系統,XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Linux系統中。在linux環境下。目前版本可用的最新XFS文件系統的為1.2版本,可以很好地工作在2.4核心下

btrfs: Btrfs(通常念成Butter FS),由Oracle2007年宣布并進行中的COW(copy-on-write)文件系統。目標是取代Linux目前的ext3文件系統,改善ext3的限制,特別是單一文件大小的限制,總文件系統大小限制以及加入文件校驗和特性。加入目前ext3/4未支持的一些功能,例如可寫的磁盤快照(snapshots),以及支持遞歸的快照(snapshots of snapshots),內建磁盤陣列RAID)支持,支持子卷(Subvolumes)的概念,允許在線調整文件系統大小。

reiserfsReiserFS是一種新型的文件系統,它通過一種與眾不同的方式完全平衡樹結構來容納數據,包括文件數據,文件名以及日志支持。ReiserFS還以支持海量磁盤和磁盤陣列,并能在上面繼續保持很快的搜索速度和很高的效率。

jfsJFS( JOURNAL FILE SYSTEM),一種字節級日志文件系統,借鑒了數據庫保護系統的技術,以日志的形式記錄文件的變化。JFS通過記錄文件結構而不是數據本身的變化來保證數據的完整性。這種方式可以確保在任何時刻都能維護數據的可訪問性。

swapLinuxSwap(即:交換分區),類似于Windows虛擬內存,就是當內存不足的時候,把一部分硬盤空間虛擬成內存使用,從而解決內存容量不足的情況。Android是基于Linux的操作系統,所以也可以使用Swap分區來提升系統運行效率。

Windowsfat32,ntfsfat16

UnixFFSfast),UFS(unix),JFS2

網絡文件系統:NFS,CIFS

集群文件系統:GFS2,OCFS2oracle

分布式文件系統:cephmoosefs,mogilefs,glusterfsLustre

RAW:未經處理或者未經格式化產生的文件系統

光盤文件系統:iso9660

 

日志型文件系統

ext3,ext4,xfs

非日志文件系統

ext2,vfat

文件系統的組成部分

內核中的模塊:ext4xfs,vfat

用戶控件的管理工具:mkfs.ext4,mkfs.xfsmkfs.vfat

 

虛擬文件系統:VFS

查看支持的文件系統:cat /proc/filesystems

 

創建文件系統

mkfs命令:

mkfs [option]  device

mkfsmake file system的縮寫

mkfs.fstype  /dev/device

         ext4

         xfs

         btrfs

         vfat

mkfs –t fstype  /dev/device

      -L label’設定卷標

     

mke2fs:ext系列文件系統專用管理工具

    -t{ext2|ext3|ext4}:指定文件系統類型

    -b{1024|2048|4096}:指定塊大小

    -L “label”:指定卷標

    -j 相當于 –t  ext3

mkfs.ext3 = mkfs-t ext3 = mke2fs -j = mke2fs -t ext3

    -i #:為數據空間中每多少個字節創建一個inode;次大小應該大于block的大小,一般為塊大小的2^n

    -I #inode size   大小為 128—4096

    -N:為數據空間創建多少個inode

    -m #:默認為5%,為管理員預留空間占總空間的百分比

    -O feature[…]:啟用指定特性

    feature:has_journal啟用日志功能  large_file文件系統能存儲的最大文件數,dir_index

    -O ^feature:關閉指定特性

文件系統特性有:

     dir_index    在大目錄下使用hash樹來快速查找
     extent         在一個inode快中利用程度來存儲數據的位置方案  

     filetype       文件類型    

     flex_bg        允許塊組來防止在存儲介質上的任何位置

     journal_dev  給定設備來替代普通ext2文件系統

     resize_inode 調整inode的大小
     sparse_super  用文件系低于超級塊的副本
     uninit_bg     加快文件系統的創建時間長短

     has_journal  帶有日志功能

     large_file     文件系統支持最大的文件數

    -F:強制創建文件系統

   12.jpg

11.png


 

tune2fs

重新設定ext系列文件系統可調整參數的值

-l:查看指定文件系統超級快信息;super block

-L ‘label’ 修改卷標

-m #:修改預留給管理員的空間百分比

-j:將ext2的文件系統升級為ext3

-r:指定預留塊數

-O:設定默認的掛載選項

-o:設定文件系統的默認掛載選項

      這里的文件系統特征跟mke2fs相同

-UUUID,修改UUID

       13.jpg

 

dumpe2fs

-h:查看超級快信息,分區用分組管理

     24.jpg

文件系統標簽

執行設備的另一種方法

與設備無關

blkid:塊設備屬性信息查看

blki [option]….[device]

-U UUID:根據指定的UUID來查找對應的設備,當我只知道uuid時可以使用此命令來查詢設備的信息

-L LABEL:根據指定的LABEL來查找對應的設備,對于卷標來說使用卷標也可以查詢設備名

 14.jpg

e2label:管理ext系列文件系統的label卷標

e2label device  查看設備的卷標

e2label device  label

15.jpg 

findfs:查找分區,次命令的作用是用來查看卷標,或者更改卷標,有時候在腳本當紅運用到此功能

findfs [options] label=label

findfs [option] UUID=”uuid”

     1.jpg


文件系統檢測和修復

因進程以外終止或系統奔潰等情況導入寫入等操作非正常終止時,可能會導致文件系統損壞,此時應該修復文件系統

注意,需要離線修復,也就是卸載文件系統

fsck File System Check

fsck.fstype

fsck –t fstype

-a:自動修復錯誤

-r:交互式修復錯誤

注意:fstype一定要與分區上已有文件系統類型相同

 

e2fsckext系列文件專用的檢測修復工具

-y:自動回答為yes

-f:強制修復

       17.jpg

 

超級塊

超級塊的作用是存儲文件系統的大小,有多少使用和沒有使用的數量,以及他們各自的總數和其他諸如此類的信息。要使用一個分區來進行數據訪問,那么第一個要訪問的就是超級塊,所以如果超級快壞了,那磁盤基本沒救了。

超級快占用第1號物理塊,是文件系統的控制塊,超級塊包括,文件系統的大小,空閑塊數,空閑塊索引,空閑inode節點數目,空閑inode表數,封鎖標記。超級塊是系統為文件分配存儲空間,回收存儲空間的依據。

 

mount掛載

掛載:將新的文件系統關聯至當前根文件系統

卸載:將某文件系統與當前根文件系統的關聯移除

  掛載點有如下要求:

此目錄沒有被其他進程使用

目錄的事先存在

目錄的原有文件將會暫時隱藏

掛載完成后,要通過掛載點訪問對應文件系統上的文件

掛載方法:mount device mount_point

mount

查看/etc/mtab文件顯示當前已掛載的所有設備

偽文件系統名稱:proc,sysfs,devtmpfs,configfs

18.jpg

 

常用選項

-t fstype:指定要掛載的設備上的文件系統類型,不適用此選項時,mount命令會調用blkid命令獲取對應文件系統的類型

-rreadonly,只讀掛載

-wread and write,讀寫掛載

-n:不更新/etc/mtab,默認情況下,mount命令每掛載一個設備,都會把掛載的設備信息保存至/etc/mtab文件中,使用-n選項意味著掛載設備時,不會把信息寫入此文件

-a:表示掛載/etc/fstab文件中定義的所有文件系統

–U ‘UUID’ mount_point 通過uuid的方式來掛載文件系統

–L ‘label’ mount_point 通過卷標的方式來掛載文件系統

-B, –bind:綁定目錄到另一個目錄上,當我把/boot目錄又一次掛載到/media目錄下時,/media目錄下的內容和/boot下的內容完全一致

查看內核追蹤到的已掛載的所有設備:

cat /proc/mounts

20.jpg


     

    -o options(掛載文件系統的選項),多個選項使用逗號分隔

async:異步模式,數據寫操作先于內存完成,而后根據某種策略同步至持久設備中

sync:同步模式,內存更改時,同時寫磁盤

atime/noatime:包含目錄和文件

diratime/nodiratime:目錄的訪問時間戳

auto/noauto:是否支持自動掛載,是否支持-a選項

exec/noexec:是否支持將文件系統上運行應用程序

dev/nodev:是否支持在此文件系統上使用設備文件

suid/nosuid:不否支持suidsgid權限

remount:重新掛載

ro:只讀

rw:讀寫

user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載

acl:啟用此文件系統上的acl功能,默認不支持(centos6)

Defaults:相當于rw, suid, dev, exec, auto, nouser, async

 

卸載命令

查看掛載情況

findmnt  mount_point

查看正在訪問指定文件系統的進程

lsof mount_point

fuser –v mount_point

終止所有正在訪問指定的文件系統的進程

fuser –km mount_point

卸載

umount  device

umount mount_point

注意:必須掛載點設備沒有進程使用才能卸載

     21.jpg

掛載點和/etc/fstab

配置文件系統體系

mount、fsck和其他程序使用

系統重啟時保留文件系統體系

可以在設備欄使用文件系統卷標

使用mount  -a 命令掛載/etc/fstab中的所有文件系統

文件掛載配置文件

22.jpg

/dev/mapper/VolGroup-lv_root    /        ext4        defaults      1           1

要掛載的設備或偽文件系統   掛載點  文件系統類型  掛載選項   轉儲頻率   自檢次序

要掛載的設備或偽文件系統:

設備、labellabel= ”)、UUIDUUID= ”)、偽文件系統名稱(proc,sysfs

掛載選項:defaults

轉儲頻率:

0:不做備份

1:每天轉儲

2:每隔一天轉儲

 

自檢次序:

0:不自檢

1:首先自檢;一般只有rootfs采用1

 

處理交換文件和分區

交換分區是系統RAM的補充

基本設備包括:

創建交換分區或者文件

使用mkswap寫入特殊簽名

/etc/fstab文件中添加適當的條目

使用swapon –a激活交換空間

啟用swap

swapon [option]… [device]

-a:激活所有的交換分區

-p priority指定優先級

/etc/fstabpri=value

禁用:swapoff [option]… [device]

     需要注意的是,在分區時要將文件系統的類型調成82,然后不需要格式化,直接使用mkswap命令創建swap

    23.jpg

swap的優先級

用戶可以給某個swap指定一個032767的優先級

如果用戶沒有指定,那么核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一。

先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(正數)永遠高于核心缺省指定的優先級(負數)

優化性能:分布存放,高性能磁盤存放。

 

移動介質

掛載意味著使外來的文件系統看起來如同是主目錄的一部分

訪問前、介質必須被掛載

摘除時,介質必須被卸載

按照模式設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等)

掛載點通常在/media/mnt

 

使用光盤

在圖形環境下自動啟動掛載/run/media/user/label

否則就必須被手工掛載

mount /dev/cdrom   /mnt

eject命令卸載或彈出磁盤

創建ISO文件

cp /dev/cdrom  /root/centos7.iso

mkisofs –r –o /root/etc.iso  /etc

刻錄光盤

wodim  -v  -eject  centos.iso

 

掛載USB介質

被內核探測為scsi設備

/dev/sdax/  /dev/sdbx 或類似的設備文件

在圖形環境自動掛載

圖標在計算機窗口中創建

掛載在/run/media/user/label

手動掛載

/mout  /dev/sdb1  /mnt

 

常用工具

內存使用狀態:

free [option]

-m:以MB為單位

-g:以GB為單位

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

df  [option]…[file]…

-H 1000為單位

-T:文件系統類型

-hhuman-reable,以人類易讀的方式顯示

-iinodes  instead of blocks

-P:以posix兼容的個數輸出

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

du [option]….DIR

-h:human-readble

-s:summary

 

工具dd

dd命令:convert and copy a file

用法:

dd if=/path/from/src  of=/path/to/dest

bs=#:block size,復制單元大小

count=#:復制多少個bs

of=file 寫到所命名的文件而不是到標準輸出

if=file        從命令文件讀取而不是從標準輸入

bs=size  指定塊大小

skip=blocks 從開頭忽略blocksibs大小的塊

seek=blocks 從開頭忽略blocksobs大小的塊

count=n 只拷貝n個記錄

  conv=conversion[,conversion…] 用指定的參數轉換文件。

轉換參數:

ascii 轉換EBCDIC ASCII

ebcdic 轉換ASCII EBCDIC

block 轉換為長度為cbs 的記錄,不足部分用空格填充。

unblock 替代cbs長度的每一行尾的空格為新行

lcase 把大寫字符轉換為小寫字符

ucase 把小寫字符轉換為大寫字符

swab 交換輸入的每對字節。

noerror 出錯時不停止

notrunc 不截短輸出文件。

sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊

 

 

·

拷貝磁盤

dd if=/dev/sda of=/dev/sdb

備份mbr

dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

sfdisk –d /dev/sda  >/tmp/mbr

破壞mbr中的bootloader

dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446

 

 

備份:

dd if=/dev/sda  of=/dev/sdd

將本地的/dev/sda整盤備份到/dev/sdd

dd if=/dev/sdd of=/path/to/somofile

/dev/sda全盤數據備份到指定路徑的文件

dd if=/dev/sda | gzip >/path/to/image.gz

備份/dev/sda全盤數據,并利用gzip工具進行壓縮,保存到指定路徑

 

恢復

dd if=/path/to/file of=/dev/sda

將備份文件恢復到指定盤

gzip -dc /path/to/image.gz | dd of=/dev/sda

將壓縮的備份文件恢復到指定盤

 

拷貝內存資料到硬盤

dd if=/dev/mem of=/root/mem.bin bs=1024

將內存里的數據拷貝到root目錄下的mem.bin文件

從光盤拷貝iso鏡像

dd if=/dev/cdrom of=/root/cd.iso

拷貝光盤數據到root文件夾下,并保存為cd.iso文件

 

銷毀磁盤數據

dd if=/dev/urandom of=/dev/sda1

利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/sda1將無法掛載,創建和拷貝操作無法執行。

 

 得到最恰當的block size

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size大小

 


測試硬盤讀寫速度

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

 通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度


1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/testdir目錄,且默認有acl掛載選項

fdisk /dev/sda –>n–>p—>回車–>+2G—>w

partx -a /dev/sda

mke2fs -b 2048 -m 1 -t ext4 -L "TEST" /dev/sda3

mkdir /testdir

vim /etc/fstab加入如下行

UUID="79602101-81b7-40f3-b792-c4386be0cf79"   /testdir   ext4   defaults,acl   0 0

mount -a

  1.jpg

  2.jpg

 4.jpg

 6.jpg

 2、寫一個腳本,完成如下功能:
  (1) 列出當前系統識別到的所有磁盤設備;
  (2) 如磁盤數量為1,則顯示其空間使用信息;
    否則,則顯示最后一個磁盤上的空間使用信息;

#!/bin/bash

    #

Diskcount=`fdisk -l |grep "^D.*/dev/sd[a-z].*"|wc -l`

Disk=`fdisk -l |grep "^D.*/dev/sd[a-z].*"|cut -d ' ' -f2|cut -d : -f1`

if [ $Diskcount   -eq 1 ] ;then

   fdisk -l  $Disk

 else

   fdisk -l `fdisk -l |grep "^D.*/dev/sd[a-z].*"|cut -d ' ' -f2|cut -d : -f1|tail -1  `

fi

5.jpg




 

原創文章,作者:fszxxxks,如若轉載,請注明出處:http://www.www58058.com/40110

(1)
fszxxxksfszxxxks
上一篇 2016-08-27
下一篇 2016-08-27

相關推薦

  • grub文件文件修復

    首先我們先破壞一下grub文件 這里我們先查看一下電腦是哪塊硬盤啟動的 這里我們就直接破壞硬盤的二進制數據,以達到grub的破壞。 要記住我們只能破壞前446字節,也就是bootloader。后面64字節是分區表。 我們可以查看一下前512字節的二進制文件 hexdump -C -n 512 /dev/sda 先破壞/boot/grub/stage1的前44…

    2017-07-28
  • iptables實踐-week14

    系統的INPUT和OUTPUT默認策略為DROP; 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; 規則: # 周一不能訪問web服務 ~]# iptables -R INPUT 1 -d 172.16.0.11 -p tcp –dp…

    Linux干貨 2017-05-04
  • 【招聘】北京/互聯網/運維工程師/7-15K/雙休,五險一金

    崗位職責:   1、負責服務器的規劃、調試優化、日常監控、故障處理、數據備份、日志分析等工作;   2、參與運維流程制定,確保任何突發情況都能高效響應;  3、負責服務器部署,對服務器構架和網絡進行優化和改進;  4、負責運維相關數據的收集、分析和總結;  5、負責技術運維相關的文檔、手冊…

    Linux干貨 2016-04-16
  • RAID各級別特性介紹

        RAID全稱為獨立磁盤冗余陣列(Redundant Array of Independent Disks):基本思想就是把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴、 容量巨大的硬盤。     RAID通常被用在服務器電腦上,使用完全相…

    Linux干貨 2016-06-22
  • 磁盤管理之磁盤分區,主引導分區表修復

    磁盤管理: I/O Ports: I/O設備地址 一切皆文件: open(), read(), write(), close() 設備類型: 塊設備:block,存取單位“塊”,磁盤 字符設備:char,存取單位“字符”,鍵盤 設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信 設備號碼: 主設備號:major number, 標識設備類型…

    Linux干貨 2016-08-25
  • 譯文-Symbolic一個基于func集中式管理平臺[原創]

    Symbolic是一個開源的企業平臺,旨在建立、配置和管理您的龐大分布式數據中心為目的開源框架,代表了目前最先進的數據中心解決方案的集中管理平臺。 特征 屬于RedHat認證協議棧的應用 具于func后端應用 支持 RHEL、Centos及Fedora 先進的拖放標簽管理(Ajax) 提供Cobbler支持 靈活管理操作用戶、主機 組和權限管理標記 先進的基…

    Linux干貨 2015-03-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-29 15:56

    文章結構清晰,總結的內容完整,有理論有實踐,通過具體操作對各項命令進行了實踐。磁盤管理是作為系統管理員必備的基礎技能,需要熟練掌握。

欧美性久久久久