当前位置: 移动技术网 > 科技>操作系统>Linux > 存储管理

存储管理

2019年12月18日  | 移动技术网科技  | 我要评论
存储基础知识 主要知识点: 基本分区、逻辑卷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

 

 

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网