存儲管理

来源:https://www.cnblogs.com/thelovelybugfly/archive/2019/12/17/12054850.html
-Advertisement-
Play Games

存儲基礎知識 主要知識點: 基本分區、邏輯捲LVM、EXT3/4/XFS文件系統、RAID從工作原理區分機械固態從磁碟尺寸3.5 2.5 1.8從插拔方式熱插拔非熱插拔從硬碟主要介面IDE —— SATA I/II/IIISCSI —— SAS PCIEFCkernel對不同介面硬碟命名方式OS I ...


存儲基礎知識

主要知識點: 基本分區、邏輯捲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=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

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 賬戶安全是系統安全的第一道防線,通過刪除不必要的用戶以及對登錄進行加密與限制,可以避免因許可權泄露與中間人攻擊導致的安全隱患。 刪除不必要的用戶 在linux系統安裝過程中,系統會建立一些不必要的用戶與用戶組,這些用戶與用戶組會成為黑客攻擊的目標,刪除它們可以有利於系統的安全。 Linux中可以刪除的 ...
  • 最近使用 etcd的過程中,發現etcd又占用了新的埠,並且文檔中指向了這個網站,下麵針對此網站來進行記錄: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt 保持更 ...
  • 許可權: 所謂的許可權是,由用戶啟動的進程,或者由操作系統啟動的進程,可以訪問哪些文件,不可以訪問哪些文件。 進程太多了,不可能為每個進程定義許可權對吧,所以進程的許可權來自於啟動進程的用戶。 用戶有哪些許可權,則由此用戶啟動的進程就有哪些許可權。 操作系統啟動後,會啟動很多後臺進程(daemon進程),這些進 ...
  • 和其他語言一樣,Shell 也可以包含外部腳本(類似python中import的功能)。這樣可以很方便的封裝一些公用的代碼作為一個獨立的文件。 Shell 文件包含的語法格式如下: 示例 創建兩個 shell 腳本文件。 test_01.sh 代碼如下: test_02.sh 代碼如下: 給test ...
  • 重定向的作用是將命令的執行結果輸出到指定的文件中。 重定向命令列表如下: 文件描述符 0 通常是標準輸入(STDIN),1 是標準輸出(STDOUT),2 是標準錯誤輸出(STDERR)。 1、輸出重定向 將輸出重定向到file示例: 註意,任何file1內的已經存在的內容將被新內容替代,更改fil ...
  • 最近發現windows 預設是沒有xps 查看器的,需要自己手動添加: 安裝完成後,即可使用: 參考鏈接:https://www.windowscentral.com/how-get-xps-viewer-app-back-windows-10-april-2018-update ...
  • pidstat主要用於監控全部或指定進程占用系統資源的情況,如CPU,記憶體、設備IO、任務切換、線程等。pidstat首次運行時顯示自系統啟動開始的各項統計信息,之後運行pidstat將顯示自上次運行該命令以後的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。 ...
  • 網路管理基礎 Network interface names Traditionally, network interfaces in Linux are enumerated as eth0, eth1, eth2, and so on. However, the mechanism which ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...