主頁 > 作業系統 > 存盤管理

存盤管理

2020-10-02 01:46:59 作業系統

存盤基礎知識

主要知識點: 基本磁區、邏輯卷LVM、EXT3/4/XFS檔案系統、RAID

從作業原理區分
機械
固態

從磁盤尺寸
3.5 2.5 1.8

從插拔方式
熱插拔
非熱插拔

從硬碟主要介面
IDE —— SATA I/II/III
SCSI —— SAS
PCIE
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(全虛擬化驅動)

HP服務器硬碟
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一個控制器, d0第一塊磁盤, p1磁區1
/dev/cciss/c0d0p2 //c0第一個控制器, d0第一塊磁盤, p2磁區2

從存盤連接方式
本地存盤
外部存盤 scsi線 stat線 sas線 FC線
網路存盤 以太網路 FC網路

從磁區方式區分
MBR <2TB fdisk 14個磁區(4個主磁區,擴展磁區,邏輯磁區) 例如: 3主 + 1擴展(n邏輯)
GPT >2TB gdisk(parted) 128個主磁區
注意:從MBR轉到GPT,或從GPT轉換到MBR會導致資料全部丟失!

KVM增加硬碟

半虛擬化驅動磁盤: online
全虛擬化驅動磁盤: offline

基本磁區管理

基本磁區(MBR|GPT) ----> Filesystem ----> mount
邏輯卷 ----> Filesystem ----> mount

[root@server0 ~]# ll /dev/vd*
brw-rw----. 1 root disk 253, 0 11月 30 15:02 /dev/vda
brw-rw----. 1 root disk 253, 1 11月 30 15:02 /dev/vda1
brw-rw----. 1 root disk 253, 16 11月 30 15:02 /dev/vdb
brw-rw----. 1 root disk 252, 32 11月 30 15:02 /dev/vdc

[root@server0 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
vdc 252:32 0 8G 0 disk

====fdisk====

MBR 14個磁區(4個主磁區,擴展磁區,邏輯磁區)
1.創建磁區
# fdisk /dev/vdb
# fdisk -l /dev/vdb
# partprobe /dev/vdb
# ll /dev/vdb*
brw-rw----. 1 root disk 253, 16 11月 30 15:13 /dev/vdb
brw-rw----. 1 root disk 253, 17 11月 30 15:13 /dev/vdb1
brw-rw----. 1 root disk 253, 18 11月 30 15:13 /dev/vdb2

====gdisk====

GPT 128個主磁區
1.創建磁區
# gdisk -l /dev/vdc
# gdisk /dev/vdc
# partprobe /dev/vdc
# ll /dev/vdc*
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc
brw-rw----. 1 root disk 253, 33 Jun 6 17:38 /dev/vdc1
brw-rw----. 1 root disk 253, 34 Jun 6 17:38 /dev/vdc2

fdisk -l /dev/vdb

 

 

2.創建檔案系統(格式化)centos7默認使用xfs
# mkfs.xfs /dev/vdb1
# mkfs.ext4 /dev/vdb2

3.掛載
# mkdir /mnt/disk1
# mkdir /mnt/disk2
# mount -t xfs -o ro /dev/vdb1 /mnt/disk1 //手動不推薦
# umount /mnt/disk1

# blkid
# vim /etc/fstab
UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" /mnt/disk1 auto defaults 0 0
UUID="4d26172c-7aff-4388-baa5-c6756c014d52" /mnt/disk2 ext4 ro 0 0
# mount -a

[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 10G 3.2G 6.8G 33% /
devtmpfs devtmpfs 906M 0 906M 0% /dev
tmpfs tmpfs 921M 140K 921M 1% /dev/shm
tmpfs tmpfs 921M 17M 904M 2% /run
tmpfs tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/vdb1 xfs 197M 11M 187M 6% /mnt/disk1
/dev/vdb2 ext4 283M 2.1M 262M 1% /mnt/disk2

[root@server0 ~]# mount
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
/dev/vdb1 on /mnt/disk1 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
/dev/vdb2 on /mnt/disk2 type xfs (ro,relatime,seclabel,attr2,inode64,noquota)

LVM管理

創建LVM
VG擴展/縮小
LV擴容/檔案系統擴容
LVM Snapshot [擴展]

基本磁區(MBR|GPT) ----> Filesystem ----> mount
邏輯卷 ----> Filesystem ----> mount

一、創建LVM
0. 準備物理磁盤
可以是: /dev/sdb /dev/sdc1 (建立在RIAD之上)
[root@server0 ~]# ll /dev/vd{c,d,e}
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc
brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/vdd
brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/vde

1. pv
[root@server0 ~]# pvcreate /dev/vdd
Physical volume "/dev/vdd" successfully created

[root@server0 ~]# pvscan
PV /dev/vdd lvm2 [2.00 GiB]
Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]

[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd lvm2 a-- 2.00g 2.00g

2. vg
[root@server0 ~]# vgcreate vg1 /dev/vdd
Volume group "vg1" successfully created
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 0 0 wz--n- 2.00g 2.00g
[root@server0 ~]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg1" using metadata type lvm2
[root@server0 ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.00 GiB
PE Size 4.00 MiB
Total PE 511
Alloc PE / Size 0 / 0
Free PE / Size 511 / 2.00 GiB
VG UUID 7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V

3. lv
[root@server0 ~]# lvcreate -l 10 -n lv1 vg1
[root@server0 ~]# lvcreate -L 200M -n lv2 vg1

[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [640.00 MiB] inherit
ACTIVE '/dev/vg1/lv2' [256.00 MiB] inherit

4. 創建檔案系統并掛載
[root@server0 ~]# mkfs.xfs /dev/vg1/lv1
[root@server0 ~]# mkfs.ext4 /dev/vg1/lv2

[root@server0 ~]# mkdir /mnt/lv1 /mnt/lv2

[root@server0 ~]# vim /etc/fstab
/dev/vg1/lv1 /mnt/lv1 xfs defaults 0 0
/dev/vg1/lv2 /mnt/lv2 ext4 defaults 0 0

[root@server0 ~]# mount -a
[root@server0 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1
/dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2


二、VG管理
==擴大VG vgextend==
1. pv
[root@server0 ~]# pvcreate /dev/vde

2. vgextend
[root@server0 ~]# vgextend vg1 /dev/vde
Volume group "vg1" successfully extended
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 3.99g 3.76g

==減小VG vgreduce==
1.查看當前的VG中PV的使用情況
[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd vg1 lvm2 a-- 2.00g 1.76g
/dev/vde vg1 lvm2 a-- 2.00g 2.00g

2. pvmove資料到其它PV
[root@server0 ~]# pvmove /dev/vdd
/dev/vdd: Moved: 16.7%
/dev/vdd: Moved: 100.0%

[root@server0 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd vg1 lvm2 a-- 2.00g 2.00g
/dev/vde vg1 lvm2 a-- 2.00g 1.76g

3.vgreduce VG
[root@server0 ~]# vgreduce vg1 /dev/vdd
Removed "/dev/vdd" from volume group "vg1"

[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 2 0 wz--n- 2.00g 1.76g


三、LV擴容
1. lv擴容
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 1.88g 1.00g

[root@server0 ~]# lvextend -L 800M /dev/vg1/lv1
[root@server0 ~]# lvextend -L +800M /dev/vg1/lv1

[root@server0 ~]# lvextend -l 15 /dev/vg1/lv1
[root@server0 ~]# lvextend -l +15 /dev/vg1/lv1

=======================================
+50%FREE
=======================================

[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
ACTIVE '/dev/vg1/lv2' [512.00 MiB] inherit

2. FS擴容
[root@server0 ~]# df -Th
/dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2

a. xfs
[root@server0 ~]# xfs_growfs /dev/vg1/lv1

b. ext2/3/4
[root@server0 ~]# resize2fs /dev/vg1/lv2

[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2


四、LVM快照snapshot
1. 創建快照 (EXT4)
[root@server0 ~]# lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 768.00m
lv2 vg1 owi-aos--- 512.00m
lv2-snap vg1 swi-aos--- 128.00m lv2 5.92

[root@server0 ~]# mount -o ro /dev/vg1/lv2-snap /mnt/lv2-snap/

[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
/dev/mapper/vg1-lv2--snap ext4 488M 32M 429M 7% /mnt/lv2-snap

[root@server0 ~]# lvscan
ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
ACTIVE Original '/dev/vg1/lv2' [512.00 MiB] inherit
ACTIVE Snapshot '/dev/vg1/lv2-snap' [128.00 MiB] inherit

[root@server0 ~]# ls /mnt/lv2
etc lost+found
[root@server0 ~]# ls /mnt/lv2-snap/
etc lost+found

2. 修改原卷的資料

3. 觀察Snapshot
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 768.00m
lv2 vg1 owi-aos--- 512.00m
lv2-snap vg1 swi-aos--- 128.00m lv2 30.56


XFS:
[root@server0 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/s
掛載快照,盡量使用ro的方式,將不會破壞快照卷中的資料


[root@server0 ~]# dmsetup ls --tree
vg1-lv2--snap (252:5)
├─vg1-lv2--snap-cow (252:7)
│ └─ (253:17)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
vg1-lv2 (252:1)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)

快照自動增長:
[root@server0 ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 20
[root@server0 ~]# systemctl restart lvm2-monitor.service
[root@server0 ~]# systemctl enable lvm2-lvmetad.service
注:快照卷 和 原卷 使用同一VG空間

交換磁區管理 Swap

作用: ‘提升‘ 記憶體的容量,防止OOM(Out Of Memory)

一、查看當前的交換磁區
[root@server0 ~]# free -m
total used free shared buff/cache available
Mem: 489 140 145 4 202 304
Swap: 0 0 0
[root@server0 ~]# swapon -s
二、增加交換磁區
可以是磁區,LVM,File

===磁區===
1. 準備磁區
[root@server0 ~]# fdisk /dev/vdb (t轉換磁區的ID 82)
[root@server0 ~]# partprobe /dev/vdb
[root@server0 ~]# ll /dev/vdb*
brw-rw----. 1 root disk 253, 16 12月 6 10:18 /dev/vdb
brw-rw----. 1 root disk 253, 17 12月 6 10:18 /dev/vdb1

2.初始化
[root@server0 ~]# mkswap /dev/vdb1

3.掛載
[root@server0 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" TYPE="swap"

[root@server0 ~]# vim /etc/fstab
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap default 0 0

[root@server0 ~]# swapon -a (讀取/etc/fstab)
[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 524284 0 -1


===File===
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 xfs 10G 3.3G 6.8G 33% /

[root@server0 ~]# dd if=/dev/zero of=/swap2.img bs=1M count=512
或者
[root@server0 ~]# dd </dev/zero >/swap2.img bs=1M count=512

[root@server0 ~]# mkswap /swap2.img

[root@server0 ~]# vim /etc/fstab
/swap2.img swap swap default 0 0

[root@server0 ~]# swapon -a
swapon: /swap2.img: insecure permissions 0644, 0600 suggested.
[root@server0 ~]# chmod 600 /swap2.img
[root@server0 ~]# swapon -a


[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/vdb1 partition 524284 0 -1
/swap2.img file 524284 0 -2


三、對交換分調優 [擴展]
多個交換磁區分布在不同的磁盤
掛載時,使用相同的優先級

[root@server0 ~]# vim /etc/fstab
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap defaults,pri=1 0 0
UUID="ea5b1c77-e540-465c-9644-0d75457f8b45" swap swap defaults,pri=1 0 0

[root@server0 ~]# swapon -a
[root@server0 ~]# swapon -s
Filename Type Size Used Priority
/dev/sdb1 partition 524284 0 1
/dev/sdc1 partition 524284 0 1

測驗使用記憶體: RHEL6
[root@server0 ~]# mount -t tmpfs /dev/shm /mnt/memory
[root@server0 ~]# dd if=/dev/zero of=/mnt/memory/test bs=1M count=1000

自動掛載 Automount

掛載是由訪問產生的
卸載是由超時產生的


一、手動掛載(臨時)
mount -t 檔案系統型別 -o 選項1,選項2... 設備檔案 掛載點

===本地設備檔案
/dev/cdrom 光碟設備
/dev/sr0 光碟設備
/dev/sda5 基本磁區
/dev/vg01/lv01 邏輯卷
/dev/md0 軟RAID設備
/var/dvd.iso ISO鏡像檔案
[root@CentOS7 ~]# mount -t xfs -o ro /dev/sda5 /mnt/sda5
[root@CentOS7 ~]# mount -t iso9660 -o loop /var/dvd.iso /mnt/dvd
[root@CentOS7 ~]# mount -t iso9660 /dev/cdrom /mn/cd

===網路存盤設備檔案
準備NFS存盤見本頁后
NFS: 192.168.122.137:/home/dir1
CIFS: //192.168.10.240/dir2

NFS Client
[root@CentOS7 ~]# mount -t nfs 192.168.122.137:/home/dir1 /mnt/dir1
[root@CentOS7 ~]# mount -t cifs -o user=allice,pass=111 //192.168.0.240/dir2 /mnt/dir2


二、實作自動掛載
第一種解決方案: /etc/fstab
/dev/sda5 /mnt/sda5 xfs defaults 0 0
192.168.122.137:/home/dir1 /mnt/dir1 nfs defaults 0 0
//192.168.10.240/dir2 /mnt/dir2 cifs defaults,user=alice,pass=111 0 0
優點:可以實作開機自動掛載
缺點:由于網路連接的不穩定性,會導致網路設備掛載失敗
結論:適合掛載本地設備和持續使用的設備

第二種解決方案: automount按需掛載
[root@CentOS7 ~]# yum -y install autofs

案例1:使用automount將192.168.122.137:/home/dir1 /nas/dir1


父掛載點:/nas
子掛載點:dir1

[root@webserver ~]# vim /etc/auto.master
/nas /etc/auto.nfs

[root@webserver ~]# vim /etc/auto.nfs
dir1 -rw 192.168.122.137:/home/dir1
dir2 -rw 192.168.122.137:/home/dir2

[root@webserver ~]# systemctl restart autofs
[root@webserver ~]# systemctl enable autofs
[root@webserver ~]# ls /nas/dir1

擴展知識:準備NFS 存盤

[root@nas ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

[root@nas ~]# systemctl stop firewalld.service
[root@nas ~]# systemctl disable firewalld.service

[root@nas ~]# mkdir /home/dir1
[root@nas ~]# touch /home/dir1/file{1..10}

[root@nas ~]# vim /etc/exports
/home/dir1 *(rw,sync,no_root_squash)

[root@nas ~]# systemctl restart nfs-server.service
[root@nas ~]# systemctl enable nfs-server.service

最終提供的NFS共享為:
192.168.122.137:/home/dir1

檔案鏈接

軟鏈接 或 符號鏈接
硬鏈接

一、符號鏈接 symbolic link
[root@CentOS7 ~]# echo 111 > /file1
[root@CentOS7 ~]# ln -s /file1 /home/file11
[root@CentOS7 ~]# ll /home/file11
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

[root@CentOS7 ~]# ll -i /file1 /home/file11
4599081 -rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
135 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

[root@CentOS7 ~]# cat /file1
111
[root@CentOS7 ~]# cat /home/file11
111

[root@CentOS7 ~]# rm -rf /file1
[root@CentOS7 ~]# ll /home/file11
lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1


二、硬鏈接
[root@CentOS7 ~]# echo 222 > /file2
[root@CentOS7 ~]# ln /file2 /file2-h1
[root@CentOS7 ~]# ln /file2 /home/file2-h2
ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
[root@CentOS7 ~]# ln /file2 /etc/file2-h3

[root@CentOS7 ~]# echo 222 > /file2
[root@CentOS7 ~]# ln /file2 /file2-h1
[root@CentOS7 ~]# ln /file2 /home/file2-h2
ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
[root@CentOS7 ~]# ln /file2 /etc/file2-h3

[root@CentOS7 ~]# ll -i /file2 /file2-h1 /etc/file2-h3
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /etc/file2-h3
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2
4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2-h1

把一些重要檔案做多個鏈接

注:硬鏈接
1. 不能跨檔案系統(磁區)
2. 不支持目錄做硬鏈接
[root@CentOS7 home]# ln /home/ /mnt
ln: “/home/”: 不允許將硬鏈接指向目錄

警告:洗掉目錄軟鏈時:


# mkdir /home/it1000
# touch /home/it1000/file{1..10}
# ln -s /home/it1000/ /var/

rm -rf /var/it1000/ 洗掉目錄下的檔案
rm -rf /var/it1000 僅洗掉鏈接檔案本身

[root@CentOS7 ~]# ln -s /etc /home/
[root@CentOS7 ~]# rm -rf /home/etc/

磁盤陣列 RAID

RAID:廉價磁盤冗余陣列(Redundant Array of Independent Disks)
作 用:容錯、提升讀寫速率


RAID型別 個數 利用率 優缺點
------------------------------------------------------
RAID0 條帶集 2+ 100% 讀寫速率快,不容錯
RAID1 鏡像集 2 50% 讀寫速率一般,容錯
RAID5 帶奇偶校驗條帶集 3+ (n-1)/n 讀寫速率快,容錯,允許壞一塊
RAID6 帶奇偶校驗條帶集雙校驗 4+ (n-2)/n 讀寫快,容錯,允許壞兩塊
RAID01
RAID10 RAID1的安全+RAID0的高速 4 50% 讀寫速率快,容錯
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 讀寫速率快,容錯
RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 讀寫速率快,容錯
------------------------------------------------------

一、不同場景RAID的使用
RAID 實作方式
硬RAID: 需要RAID卡,有自己的CPU,處理速度快
軟RAID: 通過作業系統實作,比如Windows、Linux

二、RAID5 (3塊硬碟) + 熱備(1塊硬碟)
1. 準備4塊硬碟
[root@CentOS7 ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 48 Jan 13 16:07 /dev/sdd
brw-rw---- 1 root disk 8, 64 Jan 13 16:07 /dev/sde
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdf
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdg

2. 創建RAID
[root@CentOS7 ~]# yum -y install mdadm //確保mdadm命令可用
[root@CentOS7 ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
mdadm: array /dev/md0 started.
-C 創建RAID
/dev/md0 第一個RAID設備
-l5 RAID5
-n RAID成員的數量
-x 熱備磁盤的數量

3. 格式化,掛載
[root@CentOS7 ~]# mkfs.xfs /dev/md0
[root@CentOS7 ~]# mkdir /mnt/raid5
[root@CentOS7 ~]# mount /dev/md0 /mnt/raid5
[root@CentOS7 ~]# cp -rf /etc /mnt/raid5/etc1

4. 查看RAID資訊
[root@CentOS7 ~]# mdadm -D /dev/md0 //-D 查看詳細資訊
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 13 16:28:47 2014
Raid Level : raid5
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent

Update Time : Mon Jan 13 16:34:51 2014
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd
1 8 64 1 active sync /dev/sde
4 8 80 2 active sync /dev/sdf

3 8 96 - spare /dev/sdg

5. 模擬一塊硬碟損壞,并移除
終端一:
[root@CentOS7 ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail' //watch持續查看
終端二:
[root@CentOS7 ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde
//模擬壞了并移除 -f --fail -r --remove

6. 設定RAID開機生效
[root@CentOS7 ~]# mdadm -D -s
ARRAY /dev/md0 metadata=https://www.cnblogs.com/thelovelybugfly/p/1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
[root@CentOS7 ~]# mdadm -D -s > /etc/mdadm.conf

========================================================
mdadm選項:
-s --scan
-S --stop
-D --detail
-C --create
-f --fail
-r --remove
-n --raid-devices=3
-x --spare-devices=1
-l --level=5
========================================================

參考:
Update Time : Mon Aug 4 22:47:47 2014
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Rebuild Status : 3% complete

Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 3df9624c:138a5b3e:2f557132:59a43d04
Events : 41

Number Major Minor RaidDevice State
0 252 16 0 active sync /dev/vdb
3 252 64 1 spare rebuilding /dev/vde
4 252 48 2 active sync /dev/vdd

Mount 掛載詳解

本節內容:
常用掛載選項詳解
掛載設備檔案、卷標、UUID
ISO檔案創建及掛載

掛載選項 -t 檔案系統型別 -o 選項1,選項2...
示例:
mount -t ext4 -o acl /dev/sdb1 /mnt/disk1
檔案系統型別:ext4,xfs,nfs,cifs,iso9660,loop

例1:exec/noexec
[root@CentOS7 ~]# mount /dev/vg01/lv01 /mnt/lv01
[root@CentOS7 ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
[root@CentOS7 ~]# cp -rf /bin/date /mnt/lv01
[root@CentOS7 ~]# cp -rf /bin/date /mnt/lv02
[root@CentOS7 ~]# /mnt/lv01/date
Fri Jan 10 10:40:21 CST 2014
[root@CentOS7 ~]# /mnt/lv02/date
-bash: /mnt/lv02/date: Permission denied
[root@CentOS7 ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,noexec)

沒有指定任何選項,則為默認選項 man mount
defaults
Use default options: rw, suid, dev, exec, auto,
nouser, async, and relatime.

常見的掛載選項
rw 讀寫
ro 只讀
suid 支持suid
dev 支持設備檔案
nodev 不支持設備檔案
noexec 不允許執行二進制檔案
exec 允許執行二進制檔案
auto mount -a 開機自動掛載
noauto mount -a 開機不自動掛載
async 異步寫入
sync 同步同入
noatime 不更新訪問時間atime
usrquota 支持用戶級磁盤配額功能
grpquota 支持組級磁盤配額功能
acl 支持acl功能
remount 在線重新掛載
pri 指定優先級

====================================================================================

Relatime 驅動器訪問優化

POSIX 標??準?要?求?操?作?系?統?維?護?記?錄?每?個?文?件?最?后?一?次?被?訪?問?的?文?件?系?統?元?數?據?,?這?個?時?間?戳?被?稱?為atime,
維??護?它?需?要?一?個?重?復?的?對?存?儲?的?寫?入?操?作?,?這?些?寫?入?操?作?讓?存?儲?是?設?備?及?其?連?接?保?持?忙?碌?和?通?電?狀態??,?因?
為?很?少?應?用?程?序?會?使?用? atim e 數??據?,所??以?這?個?存?儲?設?備?活?動?是?在?浪?費?電?力?,?特?別?是?即?使?沒?有?從?存?儲中??讀?取
該?文?件?也?會?發?生?寫?入?存?儲?的?事?件?,但??是?從?緩?沖?中?寫?入?,?有?時?,Linux 內??核?還?支?持? mount 的?? noatime選??項?,并??
不?在?使?用?此?選?項?掛?載?的?文?件?系?統?中?寫?入? atime,??但?是?只?是?關?閉?這?個?特?性?是?有?問?題?的?,因??為?有?些?應用??程?序?會依?
賴? atime 數??據?,并??在?此?數?據?不?可?用?時?失?敗?,

紅??帽?企?業?版? Linux 6 使??用?的?內?核?之?后?此?另?一?個?可?替?換?選?項? -relatime,??Relatime 維??護? atime數??據?,但不??是
?每?次?訪?問?該?文?件?時?都?更?改?,?啟?用?這?個?選?項?,則??只?在?上?次?更?新? atime(mtime)后??修?改?該?文?件?時?,或??者最??后?一?次
?訪?問?該?文?件?是?在?相?當?長?一?段?時?間?前?(默??認?為?一?天?)時??才?會?將? atime 數??據?寫?入?磁?盤?,
默??認?情?況?下?,所??有?現?在?掛?載?的?文?件?系?統?都?啟?用? relatime,??要?在?整?個?系?統?中?限?制?這?個?特?性?,請??使?用? boot 參
數?? default_relatime=0,??如?果?默?認?在?某?個?系?統?中?啟?用? relatime,您??可?以?通?過?使?用?選?項? norelatime
掛??載?某?個?系?統?來?限?制?它?在?某?個?具?體?文?件?系?統?中?的?使?用?,?最?后?,要??使?系?統?更?新?文?件?的? atime 數??據?的?默?認?周?期
有??所?不?同?,請??使?用? relatime_interval= 引??導?參?數?,以??秒?為?單?位?指?定?周?期?,?默?認?值?為? 86400,

注:RHEL6開始relatime,atime延遲修改,必須滿足其中一個條件:
1. 自上次atime修改后,已達到86400秒;
2. 發生寫操作時;

====================================================================================

例2:async,sync
[root@CentOS7 ~]# mount /dev/vg01/lv01 /mnt/lv01
[root@CentOS7 ~]# mount -o sync /dev/vg01/lv02 /mnt/lv02
[root@CentOS7 ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
/dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,sync)
[root@CentOS7 ~]# time cp -rf /etc /mnt/lv01
[root@CentOS7 ~]# time cp -rf /etc /mnt/lv02

例3:acl
[root@CentOS7 ~]# vim /etc/fstab
/dev/mapper/vg01-lv01 /mnt/lv01 ext4 defaults,acl 0 0
[root@CentOS7 ~]# mount -o remount /mnt/lv01
[root@CentOS7 ~]# mount
/dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw,acl)


掛載時可以使用(針對基本磁區)
設備名 /dev/sda3
卷標 LABEL=yang
UUID UUID="353a34b8-9233-465c-b7cf-92c8d308c05b"
UDEV 可以給設備建立一個別名

例4:使用卷標掛載
[root@localhost ~]# tune2fs -l /dev/vda1 |less
Filesystem volume name: <none>

[root@CentOS7 ~]# tune2fs -L yang /dev/sda3 //設定卷標LABEL
tune2fs 1.39 (29-May-2006)
[root@CentOS7 ~]# vim /etc/fstab
LABEL=yang /mnt/disk1 ext4 defaults 0 0

例5:使用UUID掛載
[root@CentOS7 ~]# blkid /dev/sda5
/dev/sda5: UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" SEC_TYPE="ext2" TYPE="ext3"
[root@CentOS7 ~]# vim /etc/fstab
UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" /mnt/disk1 ext4 defaults 0 0

掛載ISO檔案
1. 將光碟制作成iso
[root@CentOS7 ~]# dd if=/dev/cdrom of=/rhel6.iso
[root@CentOS7 ~]# dd </dev/cdrom >/rhel6.iso

2. 將檔案制作成iso,例如將/etc制作成etc.iso
[root@CentOS7 ~]# genisoimage -o /tmp/etc.iso -r /etc
[root@CentOS7 ~]# file /tmp/etc.iso
/var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM '

3. 使用iso,掛載
[root@CentOS7 ~]# mount -t iso9660 -o loop /tmp/etc.iso /mnt/iso/

EXT3/4檔案系統

Ext3: 檔案系統最大16TB,單個檔案最大2TB
Ext4: 檔案系統最大16TB,單個檔案最大16TB

Ext3/Ext4檔案系統基本結構:

inode table: 存盤檔案的元資料(檔案權限,時間戳,指向block的指標等資訊)
data block: 存盤檔案的實際資料

查看superblock(檔案系統的資訊)
dumpe2fs
[root@CentOS7 ~]# dumpe2fs /dev/sda2 |less
tune2fs
[root@CentOS7 ~]# tune2fs -l /dev/sda3
tune2fs 1.39 (29-May-2006)
Filesystem volume name: yang
Last mounted on: <not available>
Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 48960
Block count: 195312
Reserved block count: 9765
Free blocks: 183410
Free inodes: 48946
First block: 1
Block size: 1024
First inode: 11
Inode size: 128
Journal inode: 8

更改檔案系統的資訊
[root@CentOS7 ~]# tune2fs -L yyy /dev/sda5
[root@CentOS7 ~]# tune2fs -o acl /dev/sda5
[root@CentOS7 ~]# tune2fs -o ^acl /dev/sda5

修復檔案系統(修復超塊)fsck,e2fsck

 

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/146875.html

標籤:Linux

上一篇:行程管理

下一篇:檔案查找

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more