时间

date #查看当前时间
date 04151234 #修改时间 月日时分,每个两位

切割命令

cut -d: -f3 #用:作为切割符,给出切割后第3列信息

重定向

date > time.txt #把输出内容保存到文件中

FD简介

  • file descriptor(FD),文件描述符,文件句柄
  • 进程使用文件描述符来管理打开的文件,每个进程都有属于自己的FD
  • FD是数字,范围:0-255
  • 1 表示标准输出,比如:终端界面
  • 2 表示错误的输出,比如:终端界面
  • 0 表示标准输入,比如:键盘鼠标啥的
  • 其他数字:表示其他文件,可读可写

实例

vim 1.txt #打开一个文件
ps aux | grep vim #在新终端中查看vim的进程号
[root@master ~]# ps aux | grep vim
root 1565 0.0 0.2 149264 4960 pts/0 S+ 09:46 0:00 vim 1.txt
ls -d /proc/1565 #查看
ls /proc/1565 #查看进程1565的信息

ls -l /proc/1565/fd #里面的数字是链接

echo 123 > /dev/pts/0 #在新窗口里面输入这个
旧窗口里面会出现:

输出重定向的类型

  1. 正确输出
  • 1> 相当于 > #会覆盖内容
  • 1>> 相当于 >> #追加内容
  1. 错误输出
  • 2> #错误输出,会覆盖内容
  • 2>> #错误输出,追加内容
  1. 同时输出正确和错误信息
  • &> # &号和>号不能分开,否则会当成后台运行
    ls /home /aaaaa &> 2.txt
    ls /home /aaaaa &> /dev/null #什么信息都不输出,相当于丢进了垃圾桶回收站

输入重定向

输入给程序,利用输入重定向,把文件内容代替人为的输入,编程时常用

chengxu < file #文件把内容给程序
chengxu 0< file #同上

cat >1.txt << EOF
11111
22222
33333
EOF # 将后面的内容给cat看,然后重定向保存在1.txt中,EOF(end of file)里面的回车都无效
[root@master ~]# cat 1.txt
11111
22222
33333

管道

进程管道

  • 简介:管道(piping)|可以将多条命令组合起来,一次性完成复杂的处理任务
  • 语法:commad1|commad2|commad3
  • 管道左侧的输出就是右侧的输入

tee管道

  • 简介:三通管道,即交给另一个程序处理,又保存一份副本
  • 语法:commad1 |tee 1.txt | commad2 |tee 2.txt | commad3

参数传递 xargs(特殊参数)

  • cp rm一些特殊命令就是不服其他程序
  • 实例
    touch /home/file{1..5} #创建文件
    [root@master ~]# cat files
    /home/file1
    /home/file3
    /home/file5 #输入内容
    cat files | rm -rvf #删除文件
    删除失败
    cat files |xargs rm -rvf #使用xargs
    [root@master ~]# cat files |xargs rm -rvf
    removed ‘/home/file1’
    removed ‘/home/file3’
    removed ‘/home/file5’
    成功删除

管道种类

  • 匿名管道:|
  • 命名管道:可以用于跨终端的交流,系统运行时产生,以文件的形式存在,标志为p
    [root@www ~]# ll /run/systemd/initctl/fifo
    prw------- 1 root root 0 Apr 14 15:22 /run/systemd/initctl/fifo

磁盘管理

硬盘类型

  • 机械硬盘:盘片,马达,磁头,磁臂组成的机械结构存储器。便宜
  • 固态硬盘:由芯片和集成电路组成。贵

硬盘尺寸

  • 2.5英寸
  • 3.5英寸
  • 磁盘的对角线

接口

  • 插头
  • IDE/SATA
  • 串口/并口
  • 块/慢
  • 老/新
  • IDE #插口大
  • SATA #插口小

转速

  • 每分钟旋转速度
  • 5400转
  • 7200转
  • 15000转
    转速越快,速度越快,噪音越大

厂商:

  • 西部数据
  • 希捷
  • 东芝
  • 三星/等

硬盘术语

  • 磁道:每个盘面被划分成许多同心圆,这些同心圆轨迹叫做磁道,磁道从内到外从0开始编号
  • 扇区:将一个盘面划分为若干内角相同的扇形,这样盘面上的每个磁道就被分为若干段圆弧,每段圆弧叫做一个扇区,512个字节是一个扇区的大小
  • 扇面:相同角度的所有扇区组成扇面,有正反两个扇面,不同的扇面组成柱面
  • 柱面:所有盘面上同一磁道构成一个圆柱,就是柱面
  • 盘片:一块硬盘有若干盘片,每个盘片有可以存储数据的上下两个盘面。这些盘面堆叠在主轴上高速旋转。
  • 簇:

Linux硬盘命名

  • kernel对不同接口的硬盘的命名方式
    以RHEL7/centos7为例
  1. IDE(并口),不常用
    • /dev/hda h代表并口
    • /dev/hdb
  2. SATA(串口)
    • /dev/sda /dev设备文件目录,s代表sata就是串口,d代表磁盘,a是第一块
    • /dev/sdb b是第二块
    • /dev/sde e是第五块

磁盘分区方式

  • MBR
    • 主引导记录(MBR, Master Boot Record)是位于磁盘最前列的一段引导
    • MBR支持最大的磁盘容量是<2TB。设计时分配4个分区
    • 如果希望超过4个分区,需要放弃主分区,改为扩展分区和逻辑分区
  • GPT
    • 全局唯一标识分区表(GUIDPartition table, 缩写:GPT)是一个实体硬盘的分区表的结构布局标准
    • GPT支持大于2T的硬盘,支持128个分区

添加磁盘

Virtual box 加虚拟硬盘可以参考:VirtualBox虚拟机添加硬盘

管理磁盘三部曲

新硬盘不能直接用,需要经过下面三个步骤才可以使用:

  1. 分区(MBR或者GPT)
  2. 格式化文件系统也叫创建文件系统
  3. 挂载mount

查看硬盘

ls -l /dev/sd*
[root@localhost ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0 Apr 9 23:04 /dev/sda
brw-rw----. 1 root disk 8, 1 Apr 9 23:04 /dev/sda1
brw-rw----. 1 root disk 8, 2 Apr 9 23:04 /dev/sda2
brw-rw----. 1 root disk 8, 16 Apr 9 23:04 /dev/sdb
brw-rw----. 1 root disk 8, 32 Apr 9 23:04 /dev/sdc
brw-rw----. 1 root disk 8, 48 Apr 9 23:04 /dev/sdd
brw-rw----. 1 root disk 8, 64 Apr 9 23:04 /dev/sde
brw-rw----. 1 root disk 8, 80 Apr 9 23:04 /dev/sdf
brw-rw----. 1 root disk 8, 96 Apr 9 23:04 /dev/sdg
brw-rw----. 1 root disk 8, 112 Apr 9 23:04 /dev/sdh
brw-rw----. 1 root disk 8, 128 Apr 9 23:04 /dev/sdi
最前面的b表示block块设备,硬盘
lsblk #可以查看块状设备
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 5G 0 disk
sde 8:64 0 5G 0 disk
sdf 8:80 0 5G 0 disk
sdg 8:96 0 5G 0 disk
sdh 8:112 0 5G 0 disk
sdi 8:128 0 5G 0 disk
sr0 11:0 1 973M 0 rom
  • 第一列NAME:磁盘名字
  • sda1和sda2是分区
  • centos-root和centos-swap是sda2的逻辑分区
  • 第二列MAJ:MIN:设备类型和序号
  • 第三列RM:是否为可移动设备
  • 第四列SIZE:磁盘大小
  • 第五列RO:是否只读
  • 第七列TYPE:磁盘或分区
  • 第八列MOUNTPOINT:挂载点

创建分区MBR

fdisk /dev/sdb #对应于MBR,进行分区
gdisk /dev/sdb #对应于GPT,进行分区
进入会话模式
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe216c3dc.

Command (m for help):
输入字母n,回车
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
输入p划分主分区,MBR可以划出4个分区
Partition number (1-4, default 1): #选择分区号
输入1回车
First sector (2048-10485759, default 2048): #选择起始扇区,从哪个地方开始划分,每次选择默认都是在上一个分区的末尾开始。单位是一个扇区的大小即一个扇区或者512字节,0-2047放着磁盘的分区表,记录磁盘的分区信息。
直接回车就好
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): #分区到哪里结束,选择磁盘分区结束的扇区,即分区大小,可以写上面的数字,也可以写+2G之类的直接设置分区的大小,会帮我们自动计算,如果直接输入回车那就是将剩下的所有内存都给这个分区。
输入+2G回车
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): #会话模式进入最后一步,已经完成2G大小分区记录,但为生效。
输入w保存分区信息
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks. #第一个分区已经成功,退出会话模式。也可以不按w,继续按n进行分区,最后所有分区结束后,按w保存所有分区信息,最后再退出。没有分区的部分不能用。
partprobe /dev/sdb #分区准备,刷新分区表
fdisk -l /dev/sdb #查看分区信息
[root@localhost ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
#磁盘名字 大小MB 大小字节为单位 包含多少个扇区
Units = sectors of 1 * 512 = 512 bytes
# 一个扇区的大小
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
磁盘标签disk operation system(dos)
Disk identifier: 0xe216c3dc
磁盘标记符:类似于身份证

Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux

创建(格式化)文件系统

创建文件系统使得文件可以很好的访问和调用

mkfs.ext4 /dev/sdb1 #创建(格式化)/dev/sdb1 的文件系统,准备格式化
mkfs -t ext4 /dev/sdb1 #效果同上
# make
# file
# system
# extend4 扩展文件系统到第四代,是文件系统的类型。
# /dev/sdb1 第二块串口硬盘的第一个分区
[root@localhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2) #一个块的大小
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

挂载mount

mkdir /mnt/disk1
mount -t ext4 /dev/sdb1 /mnt/disk1 #挂载
永久挂载的话,把上述命令写入 /etc/fstab 文件中
df -hT #查看挂载信息,h人性化显示,T显示类型
[root@localhost ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 1.3G 16G 8% /
/dev/sda1 xfs 1014M 151M 864M 15% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /mnt/disk1
  • 第一列Filesystem:文件系统
  • 第二列Type:类型
  • 第三列Size:大小
  • 第四列Used:已用大小
  • 第五列Avail:可用大小
  • 第六列Use%:使用率
  • 第七列Mounted on:挂载点
    mount #也可以查看挂载情况
    /dev/sdb1 on /mnt/disk1 type ext4 (rw,relatime,seclabel,data=ordered)

注意事项

使用MBR只能划分4个主分区,如果需要想要多个分区,必须要放弃一个主分区,1,2,3,4分区都可以,一般选第4个主分区化为扩展分区,扩展分区不能存放数据,扩展分区需要划分成若干个逻辑分区,在逻辑分区里面存放数据。逻辑分区个数不限。

  • 4个主分区
  • 3个主分区+1个扩展分区(若干个逻辑分区)

划分扩展分区

先删除第4个分区
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
输入e选择扩展分区
Selected partition 4
First sector (5015552-10485759, default 5015552):
回车
Last sector, +sectors or +size{K,M,G} (5015552-10485759, default 10485759):
回车
剩下的所有空间都要在扩展分区里面
Command (m for help): p #p打印分区信息

Disk /dev/sdb: 5368 MB, 5368709120 bytes, 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe216c3dc

Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 4605951 204800 83 Linux
/dev/sdb3 4605952 5015551 204800 83 Linux
/dev/sdb4 5015552 10485759 2735104 5 Extended
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (5017600-10485759, default 5017600):
现在输入n就默认划分逻辑分区了
我现在划了3个主分区和一个扩展分区,扩展分区包括4个逻辑分区
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 4605951 204800 83 Linux
/dev/sdb3 4605952 5015551 204800 83 Linux
/dev/sdb4 5015552 10485759 2735104 5 Extended
/dev/sdb5 5017600 5427199 204800 83 Linux
/dev/sdb6 5429248 5838847 204800 83 Linux
/dev/sdb7 5840896 6250495 204800 83 Linux
/dev/sdb8 6252544 10485759 2116608 83 Linux

交换分区管理Swap

简介

  • 其就是一个普通的硬盘分区
  • 作用:“提升”内存的容量,防止OOM(out of memory),防止内存溢出
  • 内存可以把数据放到swap分区,热点数据。虚拟内存。

swap大小

  • 推荐:设置swap分区为内存的两倍
  • 生产中
    • 大于4G而小于46G内存的系统,最小需要4G交换空间
    • 大于16G而小于64G内存的系统,最小需要8G交换空间
    • 大于64G而小于256G内存的系统,最小需要16G交换空间

####查看交换分区

free -m #用兆来表示
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1819 224 1431 9 163 1444
Swap: 2047 0 2047

增加swap分区

  1. 将/dev/sdc磁盘划分2G分区为例,方法同上
    Command (m for help): n
    Partition type:
    p primary (0 primary, 0 extended, 4 free)
    e extended
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-10485759, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759): +2G
    Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): t

  1. 划分分区后,将类型设置为82,按t进入

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L #L 列出所有的类型
需要的是82 Linux swap
Hex code (type L to list all codes): 82
Changed type of partition ‘Linux’ to ‘Linux swap / Solaris’
3. partprobe /dev/sdc #刷新
4. mkswap /dev/sdc1 #格式化
[root@localhost ~]# mkswap /dev/sdc1
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=609db5b5-5db4-41d7-a6d3-2c7cde1dd0b8 #UUID磁盘编号
5. swapon /dev/sdc1 #挂载
#swapoff /dev/sdc1 #卸载
6. free -m #检查

[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1819 225 1430 9 163 1443
Swap: 4095 0 4095

逻辑卷管理LVM

  • 前言:物理磁盘的空间是限定的,不便于管理。单靠物理磁盘,是解决不了空间增长的问题的。
  • 目的:管理磁盘的一种方式,性质与基本磁盘无异
  • 特点:随意扩张大小,
  • 术语:
    • PV:物理卷(physical volume)
    • VG:卷组(volume group)
    • LV:逻辑卷(logical volume)

创建LVM

  1. 将物理磁盘,转化为物理卷pv
    pvcreate /dev/sdd #创建物理卷
    [root@localhost ~]# pvcreate /dev/sdd
    Physical volume "/dev/sdd" successfully created.
  2. 创建卷组
    vgcreate 卷组名 /dev/sdd #创建卷组
    vgcreate vg1 /dev/sdd
    [root@localhost ~]# vgcreate vg1 /dev/sdd
    Volume group "vg1" successfully created
  3. 创建逻辑卷
    lvcreate -L 4G -n lv1 vg1 #创建逻辑卷,-L 4G为逻辑卷大小为4G -n lv1 逻辑卷的名字为lv1 从vg1中创建
    [root@localhost ~]# lvcreate -L 4G -n lv1 vg1
    Logical volume "lv1" created.
  4. 格式化逻辑卷并挂载
    mkfs.ext4 /dev/vg1/lv1 #格式化
    注意:/dev/卷组名/逻辑卷名
    mkdir /mnt/lv1 #创建挂载点
    mount -t ext4 /dev/vg1/lv1 /mnt/lv1 #挂载
    df -hT #查看

VG 管理

扩展卷组
  • 需要把/dev/vg1容量由5g扩为10g
  • 创建pv。将pv增加到vg1中
    pvcreate /dev/sde
    pvs #查看物理卷
    [root@localhost ~]# pvs
    PV VG Fmt Attr PSize PFree
    物理卷 卷组 版本 属性 物理卷尺寸 物理卷空余尺寸
    /dev/sda2 centos lvm2 a-- <19.00g 0
    /dev/sdd vg1 lvm2 a-- <5.00g 1020.00m
    /dev/sde lvm2 --- 5.00g 5.00g
    vgextend vg1 /dev/sde #扩展卷组vg1
    [root@localhost ~]# vgextend vg1 /dev/sde
    Volume group "vg1" successfully extended
    vgs #查看卷组
    [root@localhost ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    卷组 物理卷 逻辑卷 属性 总的尺寸 剩余空间
    centos 1 2 0 wz--n- <19.00g 0
    vg1 2 1 0 wz--n- 9.99g 5.99g

LV 扩容

  1. lv本身的扩容
    lvextend -L +4G /dev/vg1/lv1 #扩展lv1多加4g
  2. 文件系统的扩容
    df -hT #观察文件系统
    /dev/mapper/vg1-lv1 ext4 3.9G 16M 3.6G 1% /mnt/lv1
    未扩容
    resize2fs /dev/vg1/lv1 # 刷新文件系统
    /dev/mapper/vg1-lv1 ext4 7.8G 18M 7.4G 1% /mnt/lv1
    扩容了

文件系统

格式化就是创建文件系统,用ext4把整个硬盘分成多个小块,每个小块4096字节,4kb

  • 文件是如何准确放在磁盘的某个位置的?
  • 文件是如何在磁盘中快速定位的?
  • 文件系统可以解答
    文件系统详解
  • ext4文件系统
    • 类型:索引型文件系统
    • 系统限制:ext3 文件系统最大16T,ext4最大16T,xfs最大100T
    • 图示
    • 名词
      • inode:上图灰色部分,记录文件属性(文件元数据:文件属性,大小,权限,属主,数组,连接数,块数量,块编号等),一个文件占用一个inode,同时记录此文件数据所在的block number,inode大小为128 字节
      • block:上图蓝色部分,存储文件的基本单元,存储文件的实际数据,若文件过大,会占用多个block,一个block默认为4k
      • superblock:1,block与inode的总量 2,未使用和已使用的inode/block的数量,用以快速找到使用或未使用的inode和block

文件系统的数目

做过几次格式化mkfs就有几个文件系统

ls -l -i 1.txt #-i 列出inode号
[root@localhost disk8]# ls -l -i 1.txt
11 -rw-r--r--. 1 root root 0 Apr 10 05:49 1.txt

11 为inode号
df -i #查看分区的Inode信息
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 229883 499 229384 1% /dev
tmpfs 232879 1 232878 1% /dev/shm
tmpfs 232879 864 232015 1% /run
tmpfs 232879 16 232863 1% /sys/fs/cgroup
/dev/mapper/centos-root 8910848 27216 8883632 1% /
/dev/sda1 524288 327 523961 1% /boot
tmpfs 232879 1 232878 1% /run/user/0
/dev/sdb1 131072 11 131061 1% /mnt/disk1
/dev/sdb2 51200 11 51189 1% /mnt/disk2
/dev/sdb3 51200 11 51189 1% /mnt/disk3
/dev/sdb5 51200 11 51189 1% /mnt/disk5
/dev/sdb6 51200 11 51189 1% /mnt/disk6
/dev/sdb7 51200 11 51189 1% /mnt/disk7
/dev/sdb8 132464 11 132453 1% /mnt/disk8
/dev/mapper/vg1-lv1 524288 11 524277 1% /mnt/lv1
disk8的总的inode数为132464,总共可以创建132464个文件,inode决定了创建文件的数量。即使所有的inode都被沾满了,如果每个文件都是空的,这时没有block被占用,可以往每个文件里面写内容,磁盘的空间限制根据inode和block两个方面,inode决定文件数量,block决定文件大小。

文件链接

  • 软链接
    • 名词解释:symbolic link 软链接,通过范围软链接可以访问实际文件
    • 实例
      • 语法: ln -s 源文件 链接文件 #-s 就是软链接
      • ln -s /mnt/disk8/1.txt /root/11.txt
      • 软链接像快捷方式,可以对文件和目录做软链接
      • 软链接记录的只是源文件的绝对路径
      • 软链接失去源文件不可用
[root@localhost ~]# ls -l 11.txt 
lrwxrwxrwx. 1 root root 16 Apr 10 06:10 11.txt -> /mnt/disk8/1.txt
l代表链接文件,11.txt 和1.txt是同一文件,向任何一个文件写内容,两个地方的内容都会修改。
如果删除链接,源文件还在,删除源文件,链接里面的内容也会没有,链接会闪烁,没有用了,这时新建源文件,软链接可以使用
  • 硬链接
    • 硬链接只能在同一个分区做
    • 语法:ln 源文件 目标文件
    • ln /2.txt /root/22.txt
      [root@localhost ~]# ls -l /root/22.txt 
      -rw-r--r--. 2 root root 5 Apr 10 06:23 /root/22.txt
      2 表示的是硬链接数
      在源文件或者链接文件里面加减内容,对所有的连接文件和源文件都有效。
      删除源文件,硬链接文件的连接数会减少,但是访问硬链接也可以访问内容,硬链接依然有效。硬链接不依赖源文件。
    • 总结:硬链接只能对文件做,不能对目录做,硬链接只能在同分区做

RAID 磁盘阵列

  • 简介:
    • RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
    • 作用:容错,自动备份,提高读写速率
  • 类型:
    • RAID0:RAID0条带集2块磁盘以上,读写速率快100%*N,没有容错,不重要的缓存做RAID0
    • RAID1:又叫镜像卷,必须两块磁盘,两块硬盘只能用一般50%,读写速率一般,备份容错。系统盘做RAID1
    • RAID5:至少3块硬盘,把数据分为N-1份,N为硬盘数,保存在前N-1个硬盘,第N个硬盘保存校验码。任何一个盘坏了,可以通过校验码获得损坏的数据。特点:可靠高速。还有其他盘,叫热备盘,这个盘不存数据,当一个盘坏了。这个盘另外补上。利用率(n-1)/n,读写速率块,容错高。重要数据做RAID5
  • 不同场景RAID的使用
    • 硬RAID:需要RAID卡,有自己的CPU,处理速度快,有电池和无电池
    • 软RAID:通过操作系统实现,如windows,linux
  • 软RAID实例
  1. 准备4块硬盘
  • 做RAID5,三块数据盘+热备盘1个
    sdf               8:80   0    5G  0 disk 
    sdg 8:96 0 5G 0 disk
    sdh 8:112 0 5G 0 disk
    sdi 8:128 0 5G 0 disk
  1. 创建RAID
    yum -y install mdadm
    mdadm -C /dev/阵列名 -l5 -n3 -x1 /dev/sdf /dev/sdg /dev/sdh /dev/sdi
    等级 数据盘数目 热备盘个数
    mdadm -C /dev/md1 -l5 -n3 -x1 /dev/sdf /dev/sdg /dev/sdh /dev/sdi
  2. 格式化,挂载
    mkfs.ext4 /dev/md1
    mkdir /mnt/raid5
    mount /dev/md1 /mnt/raid5
  3. 查看RAID信息
    def -hT
    mdadm -D /dev/md1
  4. 模拟一块硬盘损毁,并移除
    mdadm /dev/md1 -f /dev/sdf -r /dev/sdf #把sdf强制从md1中移除

参考