設備文件
I/O Ports:I/O設備地址
一切接文件:調用函數open(), read(), write(), close()
設備類型:
塊設備:block,存取單位”塊”,磁盤
字符設備:char,存取單位”字符”,鍵盤
設備文件:關聯至一個設備驅動程序,進而都夠跟與之對應硬件設備進行通信
設備號碼:
主設備號:標識設備類型
次設備號:標識同一類型下的不同設備
mknod [文件名] [類型] [主次設備號]
硬盤接口類型
并行:
IDE:133MB/s
SCSI:640MB/s
串口:
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
rpm:rotations (每分鐘的轉速)
新加硬盤肯能會導致盤符漂移,綁定UUID解決磁盤漂移
機械硬盤(HDD):單塊容量大,價格美麗,數據可恢復性高,讀寫速度慢
固態硬盤(SSD):抗震防摔,傳輸速率快,功耗小,重量輕,噪音小
磁盤設備的設備文件命名:/dev/DEV_FILE
SCSI,SATA,SAS,IDE,USB:/dev/sd
虛擬磁盤:/dev/vd
磁盤標識:a-z,aa,ab…
/dev/sda,/dev/sdb
同一設備上的不同分區:1,2,…
/dev/sda1,/dev/sda2,……
機械硬盤存儲術語:
head:磁頭
track:磁道
cylinder:柱面
sector:扇區
磁盤的三圍:磁道、柱面、扇區
CHS:
heads*sectors*bytes*cylinders=sda
不能超過2T
LBA:
是一個整數,通過轉換成CHS格式完成磁盤具體尋址
不能超過128PB
使用磁盤
分區
創建文件系統;格式化
掛載:分配目錄名
使用分區空間
設備識別
設備分區
創建文件系統
標記文件系統
在/etc/fstab文件中創建條目
掛載新的文件系統
分區的目的:
優化I/O性能
實現磁盤空間配額限制
提高修復速度
隔離系統和程序
安裝多個OS
采用不同文件系統
分區
兩個分區方式:MBR,GPT
MBR:使用32位表示扇區數,分區不超過2T
按柱面分區
0磁道0扇區:512bytes
446bytes:boot loader(啟動加載器;相當去Windows的主引導記錄)
64bytes:分區表
16bytes:標識一個分區
2bytes:55AA(分區標識位)
4個主分區:三個主分區+一個擴展(N個邏輯分區)
備份分區表
dd if=/dev/sda of=/data/mbr_bak bs=1 count=512
恢復分區表
dd if=mbr_bak of=/dev/sda
分區表克隆
dd if=/dev/sda of=/dev/sdb bs=1 count=512(兩塊磁盤容量必須相同)
清除55AA
dd if=/dev/zero of=/dev/sda bs=1 count=2 skip=510
清除后系統不會識別分區表
分區表在硬盤和內存中各存一份
fdisk -l 查看硬盤中的分區表
lsblk 查看內存中的分區表
GPT:支持128個分區,使用64位,支持8Z、64Z
使用128位UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
BIOS+MBR
UEFI+GPT
fdisk創建MBR格式分區
gdisk創建GPT格式分區
parted 高級分區操作
parted /dev/sdb mklabel gpt|msdos 把磁盤轉換成MBR或GPT
parted /dev/sdb mklabel 1 1000 給磁盤分區
parted /dev/sdb prin 查看磁盤分區
parted /dev/sdb rm 1 刪除分區
parted –l 列出分區信息
parted及時生效,不可撤回
gdisk /dev/sdb 類fdisk 的GPT分區工具
fdisk -l [-u] [device…] 查看分區
fdisk /dev/sdb 管理分區
-c 以扇區為單位劃分分區
子命令:
p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
v 校驗分區
u 轉換單位
w 保存并退出
q 不保存并退出
partx -a [磁盤路徑] centos6增加分區時使用,同步分區列表
partx -d –nr [刪除的分區號] [磁盤路徑] centos6增加分區時使用,同上
partprobe centos7同步分區表
查看內核是否已經識別新的分區:
cat /proc/partations
文件系統:
Linux文件系統:ext2(Extended file system), ext3, ext4, xfs(SGI), btrfs
(Oracle), reiserfs, jfs(AIX), swap
光盤:iso9660
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
網絡文件系統:NFS, CIFS
集群文件系統:GFS2, OCFS2(oracle)
分布式文件系統: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未經處理或者未經格式化產生的文件系統
文件系統分類
根據其是否支持”journal”功能:
日志型文件系統: ext3, ext4, xfs, …
非日志型文件系統: ext2, vfat
文件系統的組成部分:
內核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虛擬文件系統:VFS
查前支持的文件系統:cat /proc/filesystems
buffer根據寫操作,在內存上寫完暫存內存,空閑時間在存到磁盤
cache根據讀操作,磁盤的高速緩存,讀過的文件臨時存放,以便于再次訪問
mkfs命令
mkfs.[文件系統] [分區路徑]
ext4
xfs
btrfs
vfat
…..
mkfs -t [文件系統] [分區路徑]
-m 指定保留空間的百分比
-i 為數據空間中每多少個字節創建一個inode,此大小不能小于block大小
-b 指定塊大小
-N 指定分區中創建多少個inode
-l inode記錄占用的磁盤空間大小
-m #: 默認5%,為管理人員預留空間占總空間的百分比
-O FEATURE[,…]:啟用指定特性
-O ^FEATURE:關閉指定特性
-L 卷標
-j 將ext2升級為ext3
blkid [分區路徑] 查看塊設備的文件系統和UUID
tune2fs -l [分區路徑] 查看ext系列的特性
-U `uuidgen` [分區路徑] 更改UUID
tune2fs -o acl [分區路徑] 在centos6上給該分區的文件系統添加acl特性
fsck [分區路徑] -y 修復文件系統(修復邏輯上的損壞,自動判斷文件系統)
e2fsck -f [分區路徑] 檢查文件系統是否有損壞
檢查或修復文件系統時不能處于掛載狀態,用umount解除掛載狀態
e2label [分區路徑][卷標名] 修改卷標
findfs [UUID] 查找分區
uuidgen 生成隨機UUID
掛載mount
將文件系統關聯到現有的目錄上,使得此目錄作為其他文件訪問入口的行為。
一個掛載點同時只能掛載一個設備,一個設備可以掛載到多個掛載點
掛載點最好是空文件夾,否則文件夾中的數據會看不到
添加SWAP分區
fdisk:創建一個新分區(最好從零磁道開始)
mkswap [設備名]
UUID swap defaults 0 0
swapon -a [設備名]
添加成功
swapon -a [設備名] 自動掛載swap分區
-s 查看交換分區(等同于cat /proc/swaps)
swapoff [設備名] 卸載swap分區
mount [設備名] [掛載點] 掛載
?-a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)
-r 以只讀的格式掛載
-w以讀寫的格式掛載
-L 以卷標指定掛載設備
-U以UUID指定掛載設備
-t 指定文件系統掛載(系統可以自動識別,然并卵)
-n 隱藏掛載(悄悄的掛載只能在/proc/mounts下看到,對centos7無效)
-B 把文件掛載到另一個文件
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式
sync:同步模式,內存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載,是否支持-a選項
exec/noexec:是否支持將文件系統上運行應用程序
dev/nodev:是否支持在此文件系統上使用設備文件
suid/nosuid:是否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設備,/etc/fstab使用
acl:啟用此文件系統上的acl功能
loop: 使用loop設備
umount [掛載點] 解除掛載
lsof -v [掛載點] 查看誰在使用該掛載點
fuser -v 同上
fuser -km [掛載點] 強制卸載
findmnt [目錄] 查看是否為掛載點,用于腳本
losetup -a 查看loop設備
centos6上loop設備默認只有八個使用更多時要更改/boot/grub/grub.conf文件
centos7上loop設備是自動創建的,所以理論上說是沒有上限的
/etc/fstab每行定義一個要掛載的文件系統
要掛載的設備或偽文件系統
掛載點
文件系統類型
掛在選項:defaults
轉儲頻率:0:不備份 1:每天備份一次 2:每隔一天備份一次
自檢次序:0:不自檢 1:首先自檢;一般只有rootfs才用
/etc/fstab 格式中最后面的兩個零依次表示1.備份周期,配合特點軟件使用2.開機檢測順序(0不檢測1第一個檢測2第二個檢測)
/etc/fstab中最后一個為檢測時,掛載設備有問題開機啟動故障,掛載點有問題,可以正常啟動,
掛載設備故障解決方案
開機過程系統提示Ctrl+D或輸入root用戶密碼,Ctrl+D表示重啟,選擇輸入密碼
用mount -o rw,remount / 給/讀寫權限,更改/etc/fstad中的故障掛載
備份/home/
fdisk
mkfs.ext4 /dev/sda6 -L /home
mkdir /mnt/home;mount /dev/sda6 /mnt/home
init 1 會斷網,不要遠程操作
cp -av /home/* /mnt/home
rm -rf /home*
vim /etc/fstab
UUID=XXX /home ext4 defaults 0 0
mount -a
umount /mnt/home;rm -rf /mnt/home
init 5
使用光盤
eject 彈出光盤
創建ISO文件
cp /dev/sr0 /data/centos.iso
mkisofs -r -o /data/centos.iso /dev/sr0
dd if=/dev/sr0 of=/data/centos.iso
可以吧centos6的兩張光盤和成一個iso當yum源使用,但不能用于啟動盤
刻錄光盤
wodim -v -eject centos.iso
df 查看文件系統空間占用等信息
-H 以1000為單位
-T 文件系統類型
-h: 以1024為單位
-i:inodes instead of blocks
-P: 以Posix兼容的格式輸出
du 查看目錄總體空間占用狀態
-h 以人能看懂的格式
-s 不看子目錄,只看總大小
–max-depth 最大深度
dd命令:
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 復制單元大小
count=#:復制多少個bs
of=file 寫到所命名的文件而不是到標準輸出
if=file 從所命名文件讀取而不是從標準輸入
bs=size 指定塊大?。仁鞘莍bs也是obs)
ibs=size 一次讀size個byte
obs=size 一次寫size個byte
cbs=size 一次轉化size個byte
skip=blocks 從開頭忽略blocks個ibs大小的塊
seek=blocks 從開頭忽略blocks個obs大小的塊
count=n 只拷貝n個記錄
conv=conversion[,conversion…] 用指定的參數轉換文件
轉換參數:
ascii 轉換 EBCDIC 為 ASCII
ebcdic 轉換 ASCII 為 EBCDIC
lcase 把大寫字符轉換為小寫字符
ucase 把小寫字符轉換為大寫字符
nocreat 不創建輸出文件
noerror 出錯時不停止
notrunc 不截斷輸出文件
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字
符補齊
復制硬盤分區表
dd if=/dev/sdb of=/dev/sdd bs=1 count=66 skip=446 seek=446
測試硬盤寫速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
測試硬盤讀速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
修復硬盤
dd if=/dev/sda of=/dev/sda
RAID 磁盤陣列
多個磁盤合成一個陣列來提供更好的性能、冗余,或者兩者都提供
提高IO性能
并行讀寫
提高耐用性
磁盤冗余
RAID實現的方式:
外接式磁盤陣列:通過擴展卡提供適配能力
內接式RAID:主板集成RAID控制器
安裝OS前在BIOS里配置
軟件RAID:通過OS實現
RAID-0:條帶卷,又被稱為條帶集
最少兩塊硬盤或者兩塊以上
讀寫性能提高
無容錯能力
RAID-1:鏡像卷,兩兩互為鏡像
最少兩塊硬盤
讀性能提高,寫性能不變
有容錯能力,但不能防止誤操作
RAID-4 :一塊盤是校驗位讀寫平凡容易故障(淘汰)
最少三塊磁盤或三塊以上
讀寫性能提高
有容錯能力
容量n-1/n
RAID-5:校驗位分布在三塊磁盤上,壞掉一塊磁盤后讀寫速度變慢(校驗引起)
最少三塊磁盤或三塊以上
讀寫性能提高
有容錯能力
利用率n-1/n
spare disk 熱備盤
RAID-6:校驗位分布在四塊磁盤上,壞掉一塊磁盤后讀寫速度變慢(校驗引起)
最少三塊磁盤或三塊以上
讀寫性能提高
有容錯能力
利用率n-2/n
RAID7
可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立運行,理論上性能最高的RAID模式
RAID-10
容錯率比01高
RAID-01
RAID-50
RAID-60
JBOD:將多塊磁盤的空間合并一個大的連續空間使用
mdadm 為軟RAID提供管理界面
-C 指定路徑
-a yes 初始化
-l5 指定raid級別
-c 指定chunk大小
chunk:吧一個文件切割成若干個小塊,一塊就是一個chunk
創建raid配置文件
mdadm -Ds /dev/md0 > /etc/raid.conf
邏輯卷管理
允許對卷進行方便操作的抽象層,包括重新設定文件系統的大小
允許在多個物理設備間重新組織文件系統
創建邏輯卷
添加新硬盤
echo ‘- – -’ > /sys/class/scsi_host/host2/scan 開機加硬盤刷新硬盤信息
fdisk e t 8e(指定擴展分區,文件系統為8e LVM)
pvs 查看邏輯磁盤信息
vgcreate -s [PE大小] [邏輯磁盤名稱] [新創建的分區]
lvcreate -n [名稱] -l\L [PE\容量] [邏輯磁盤]
-l 100%FREE 剩余分區
跨主機遷移卷組示例:
原計算機: vgrename vg0 centos6vg0
lvrename /dev/centos6vg0/lv0 /dev/centos6vg0/lv0
1 在舊系統中,umount所有卷組上的邏輯卷 : umount /mnt/lv0
2 vgchange –a n centos6vg0 //禁用巻組 lvdisplay 查看
3 vgexport cebtos6vg0 導出邏輯卷 pvscan 查看 vgdisplay 查看
4 拆下舊硬盤
在目標計算機上
在新系統中安裝舊硬盤,并 導入vgimport centos6vg0.
vgchange -ay centos6vg0 //激活巻組
mount 所有巻組上的邏輯卷
使用分區創建邏輯卷示例:
創建分區fdisk /dev/sdc ( n p 1 1 +2G t 1 8e )
創建物理卷 : pvcreate /dev/sd{b1,c1}
顯示pv信息: pvs:簡要pv信息顯示 pvdisplay
為卷組分配物理卷: vgcreate -s 16M vg0 /dev/sd{b1,c1}
顯示卷組: vgs 或 vgdisplay
從卷組創建邏輯卷: lvcreate -L 256M –n lv0 vg0
顯示邏輯卷: lvs 或 Lvdisplay
創建文件系統:mkfs.ext4 /dev/vg0/lv0
make2fs -j /dev/vg0/data
掛載:寫入文件:UUID=xxx /mnt/lv0 ext4 defaults 0 0
mount /dev/vg0/data /mnt/data (臨時有效)
擴展邏輯卷
pvcreate /dev/sdd
vgextend vg0 /dev/sdd
lvextend -L [+10G\30G] [邏輯卷]
resize2fs [邏輯卷] 或 lvextend – r -L [+10G\30G] [邏輯卷] 同步文件系統
縮減邏輯分區
1.取消掛載
umount
2.檢查文件系統完整性
fsck -f
3.縮減文件系統
resize2fs
4.縮減邏輯分區
lvreduce -L [縮減大小] [邏輯分區]
5.掛載
mount
刪除VG中的PV
pvmove /dev/sdd
vgreduce vg0 /dev/sdd
pvremove /dev/sdd
邏輯卷快照管理
只能存最老版本的數據(多用于測試環境)
lvcreate -n lv0-snapshot -s -L 5G -p r /dev/vg0/lv0
-p r 只讀屬性
如果不加只讀屬性,恢復快照時會失敗,需要手工復制過去(ext4)
xfs不影響,不加也能同步
恢復快照
把源分區和快照分區都卸載掉
lvconvert –merge /dev/vg0/lv0-snapshot
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97028