不同盘片上相同编号的若干磁道组成一个柱面;
磁道上有分为扇区;
决定磁盘性能的四个主要参数:数据传输率;命令队列;旋转定位(寻道);平均寻道时间
回顾:
fdisk, sfdisk, parted
fdisk
n 新建分区
p 主分区
e 扩展分区
n
p
1
+100M
n
p
2
+512M
w |
dd if=/dev/zero of=/dev/sdb bs=1 count=510
echo
mke2fs
-t
-L
-b {1024|2048|4096}
-m
-i
-O
-N
dumpe2fs -h /dev/sda
tune2fs -l /dev/sda
-m
mount
-a
-n: 不更新/etc/mtab文件;
--bind Dir1 Dir2 将dir1绑定到dir2上,使用dir2也能访问dir1的内容
mount -t fstype [options] -o [options] 设备 挂载点
/etc/mtab
/proc/mounts
挂载选项:
remount, ro, rw, exec/noexec, noatime/atime, diratime/nodiratime, auto, dev, _netdev
fuser -v 目录
fuser -km 目录
umount 设备|挂载点
/etc/fstab:
设备 挂载点 文件系统类型 挂载选项 转储频度 自检次序
df
-h
-i
-P
du
-sh
verbose
# ln [-s][-v] SRC LINK
gzip, bzip2, xz, zip
tar:
c
x
t
f
-z
-zcf
-j
-jcf
-J
-Jcf
mkswap, swapon, swapoff
Raid(磁盘阵列): 一种磁盘组合类型,是由很多廉价的磁盘整合在一起的,由磁盘厂商生产
ide, SCSI,SATA(一个磁盘接一个sata口) 磁盘的接口类型
RAID: Redundent Array of Inexpensive Disks 冗余的磁盘阵列,一种磁盘存储方式,类似分布式
几个磁盘通过一个中央控制芯片来集中控制,然后连入主板,对主板来说连入的只是一个磁盘
RAID: Independent
Level: 仅用于标识磁盘组合方式的不同
raid0, raid1, raid5, raid10, raid50, jbod
raid0: 一个文件来了,将其平均分成片,存在不同磁盘上,至少需要两块磁盘,没有容错能力,读写性能都提升,100%
临时文件或者交换文件可以放在这种里面
raid1: 至少需要两块磁盘,其中一半做镜像,硬件容错能力,读性能提升,写性能下降,50%
raid4: 至少需要三块磁盘,允许一块盘出错,读写性能提升,(n-1)/n
其中一块磁盘做检测使用,所有使用存数据的磁盘做异或处理,结果存在检测硬盘中
存数据的硬盘平均分配存文件
raid5: 至少需要三块磁盘,允许一块盘出错,读写性能提升,(n-1)/n
所有磁盘轮番作为检测磁盘使用
raid6: 至少需要四块磁盘,允许两块盘出错,读写性能提升,(n-2)/n
raid10: 至少需要四块磁盘,允许不同组内各坏一块盘,读写性能提升,50% 底层用raid1,上层用raid0
尽量别用raid5,因为raid5容错率太小,因此也有raid50。这些都是组合磁盘阵列
raid01:与10相反
为了提高raid的性能,会在生产raid时,加入内存(加快写)和电池(防止断电,数据还在内存中)
jbod: 多块磁盘组合成jbod,可以存很大的文件
硬RAID:
是在主机开机的bells中去设定,多个磁盘链接到一个阵列卡,bells去设定磁盘硬件设备,针对阵列卡,基于主机的bells就能做成一个RAID,内核识别出来的是一块硬盘,为sd磁盘
软RAID:
md(multi device):这是个内核模块,可以组合任何块设备成为一个被内核识别使用的设备。
是在内核空间的模块;
这个模块是内核模块,可以将多块磁盘整合在一起使用,是一个驱动程序。数据在存储时,通过md这个模块分开存在这些磁盘上,因此这些分块存储操作都是在cpu上执行的,非常占用cpu时间,不推荐使用
mdadm:这个是在用户空间使用的配置内核md模块的指令,也就是通过mdadm告诉md模块如何工作
/etc/mdadm.conf 这个是对mdadm指令的配置文件
mdadm: 模式化的工具
-A:装配模式
-C:创建模式
-F:监控模式
管理模式:-f, -r, -a
创建一个大小为12G的RAID0:
2*6G
3*4G
4*3G
6*2G
-C:创建模式
-n #: 用于创建RAID设备的设备个数;
-x #: 热备磁盘的个数;
-l 级别:
-a yes: 自动为创建的raid设备创建设备文件;
-c Chunk_Size: 指定分块大小,默认为512,单位为KB
如果把设备做成软raid,则需要把该磁盘或者分区的类型调整为软raid类型,fd (linux raid auto)
任何的磁盘位置都有自己的类型,需要指明分区的作用
kpart -af /dev/sda
kpartx -af /dev/sda
partx -a /dev/sda 这几个让内核识别磁盘新分区
创建raid0
# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
这个是指定创建的文件设备 -a yes的意思是自动创建设备文件
创建之后会在/proc/mdstat 这里出现mdstat文件
-D: 显示阵列的详细信息
mdadm -D /dev/md0
--detail:
创建一个大小为12G的RAID1:
2*12G
# mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{3,5} 使用3和5创建raid1
创建的raid1,会把每个磁盘的位都同步成一样的,一个存数据,其他的备份
mdadm可以通过管理模式(不添加任何模式则进入管理模式)去管理raid设备,如mdadm /dev/md1,管理md1,
里面有很多选项 如-f 是指明使某个设备失效 -r 移除 -a 添加
mdadm /dev/md1 -f /dev/sdc3 sdc3是md1的一部分 可使其失效
mdadm /dev/md1 -a /dev/sda1 重新装上一个新的
-r 移除其中设备
建立的raid设备对于内核来说也就是一设备文件 如/dev/md2,也需要创建文件系统,mke2fs -t ext4 文件
-S /path/to/raid_device: 停止指定的RAID设备
-A /path/to/raid_device DEVICES: 使用指定的设备装配并启动指定的RAID设备
watch指令
-n #: 每隔#执行一次指定的命令;单位为秒钟
1, .5
使用格式:watch -n # 'COMMAND'
watch -n1 'cat /proc/mdstat'
练习:创建一个大小为1G的RAID5;给其添加一个空间盘,ext4文件系统,挂载并卸载,模拟损坏等;停止raid;
创建raid
[root@xuanxuan ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sda{6,7,8,9}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看raid信息
[root@xuanxuan ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 21 09:32:42 2015
Raid Level : raid5
Array Size : 1043456 (1019.17 MiB 1068.50 MB)
Used Dev Size : 521728 (509.59 MiB 534.25 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Oct 21 09:32:51 2015
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : xuanxuan:0 (local to host xuanxuan)
UUID : 8eb9d05b:eb953956:970a856a:78294f36
Events : 18
Number Major Minor RaidDevice State
0 8 6 0 active sync /dev/sda6
1 8 7 1 active sync /dev/sda7
4 8 8 2 active sync /dev/sda8
3 8 9 - spare /dev/sda9
创建文件系统
[root@xuanxuan ~]# mke2fs -t ext4 /dev/md0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
65280 inodes, 260864 blocks
13043 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
查看设备的文件系统信息
[root@xuanxuan ~]# dumpe2fs /dev/md0
挂载
[root@xuanxuan ~]# mount /dev/md0 /backup
卸载设备使用备盘,可以随时使用mdadm -D /dev/md0 查看raid的情况
[root@xuanxuan ~]# mdadm /dev/md0 -f /dev/sda6
mdadm: set /dev/sda6 faulty in /dev/md0
[root@xuanxuan ~]# mdadm /dev/md0 -r /dev/sda6
mdadm: hot removed /dev/sda6 from /dev/md0
[root@xuanxuan ~]# mdadm /dev/md0 -a /dev/sda6
mdadm: added /dev/sda6
练习1:创建一个空间大小为10G的RAID5设备,要求其chunk大小为1024K,格式经为ext4文件系统,开机可自动挂载至/backup目录,并支持acl功能;
练习2: 创建一个可用空间大小为10G的RAID1设备,chunk大小为256K,要求其具有一个热备磁盘,开机自动挂载至/users目录;