part 1: filesystem introduction
1.访问存储设备的方法
1.1 application->kernel->driver->hardware
1.2 application->kernel->filesystem->dirver->hardware
2.MBR(446+64+2)
2.1硬盘的前512个字节,存放硬盘的分区信息
备份mbr:dd if=/dev/sda of=/bak/mbr count=1 bs=512
2.2MBR只支持4个主,所以要做成3主+1E,所有的Logical分区都在E分区里分
3.硬盘的最小访问单元512bytes的sector,文件的Block和sector的关系
size of Block / size of sector = 2^n
4.ext2|3|4文件系统
4.1ext2
文件存放:inode+block
4.2ext3
ext2+journal
4.3ext4
ext3->upgrade
(1)16TB文件
(2)无限子目录
(3)多块分配等功能
... ...
5.常见的文件系统
5.1 单机文件系统:ext2|3|4,swap,vfat,fat,msdos,ntfs,iso9660
5.2 网络文件系统:SAMBS,CIFS,NFS
5.3 集群文件系统:GFS,GFS2;ocfs
5.4 分布式文件系统:pvfs, luster
part2: 文件系统常用的命令
1.查看文件系统的信息
1.1 du 统计文件/文件夹的量
du /dir
du -h /dir
du -csh /dir --显示文件夹的总容量
# du -csh /root/
14G /root/
14G 总计
1.2 df 挂载的文件系统的信息
df -h
1.3 free -m
显示内存/swap的信息
1.4 uname
uname -a --all
uname -n --主机名
uname -r --内核版本
2.文件系统的常用管理命令
2.1 fdisk | parted | gparted --分区的工具
fdisk -l --查看所有设备
fdisk -l /dev/sdx --查看/dev/sdx的信息
fdisk /dev/sdx --对/dev/sdx进行分区
m --help
n --add分区
d --删除分区
t --改分区的HEX code
p --打印信息
w --保存退出
q --不保存退出
+10G, +100M --指定分区的大小
partprobe --刷新信息
kpartx /dev/sda --刷新信息
partx -a /dev/sda --刷新信息
2.2 mkfs mke2fs --格式化
mkfs.ext2|3|4 /dev/sda12
mkfs -t ext2|3|4 /dev/sda12
mke2fs -t ext2|3|4 /dev/sda12
mke2fs.ext2|3|4 /dev/sda12
2.3 e2label --制作分区的卷盘
e2label /dev/sda12 sda12_label
2.4 blkid --定位/打印块设备的属性
blkid /dev/sda12 --打印分区的属性
blkid -U "UUID" --用UUID号码定位设备
blkid -L label --用LABEL定位设备
# blkid /dev/sda6
/dev/sda6: LABEL="root" UUID="675e0587-68cd-4277-b029-c05b1ece2ac6" TYPE="ext4"
2.5 挂载分区
mkdir /mnt/sda12_dir
mount -t ext3|2 /dev/sda12 /mnt/sda12_dir
2.6 卸载分区
umount /mnt/sda12_dir
umount /dev/sda12
2.7 永久挂载
(1) 常规挂载方法
vi /etc/fstab
/dev/sda12 /mnt/sda12_dir ext3 defaults 0 0
(2) UUID挂载
UUID="acc45d4b-d669-41ec-a089-0f10ddd85a9d" /mnt/sda12_dir12 ext3 defaults 0 0
(3) LABEL挂载
LABEL=sda12_label /mnt/sda12_dir ext3 defaults 0 0
(4) fstab文件的格式
man fstab
1 --设备|UUID|LABEL
2 --挂载点|挂载路径
3 --文件系统的类型
4 --挂载选项
5 --是否支持dump 1支持 0不支持
6 --开机或重启时是否使用fsck进行检测和修复分区
0 不支持
1 根文件系统写成1
2 非根文件系统写成2
2.8 创建虚拟内存
fdisk /dev/sda
n
+1G
t
82
w
partx -a /dev/sda
mkswap /dev/sda13
swapon /dev/sda13
free -m
swapoff /dev/sda13
free -m
永久挂载:
vi /etc/fstab
/dev/sda13 swap swap defaults 0 0
2.9 dd --拷贝文件或者物理块
dd if=/dev/sdxx of=/tmp/sdxx.img bs=100 count=2
if 源
of 目的地
bs 每次读写的数量
count 读写的次数
1.做光盘镜像
dd if=/dev/cdrom of=/tmp/rhel6.iso
mount -t iso9660 -o loop /tmp/rhel6.iso /mnt --挂载光盘镜像
2.备份mbr
dd if=/dev/sda of=/opt/mbr bs=512 count=1 --备份mbr
dd if=/opt/mbr of=/dev/sda bs=512 count=1
3.建立空文件
dd if=/dev/zero of=/tmp/file bs=1M count=1024
man zero
4.全盘备份
dd if=/dev/sda of=/dev/sdb --要考虑容量的大小关系,最好两个硬盘一样大
dd if=/dev/sda of=/opt/filename.img --备份成文件
5.销毁硬盘
dd if=/dev/urandom of=/dev/sda --销毁磁盘数据,用随机数填写(慎用)
2.10 查看挂载的文件系统
mount
cat /etc/mtab
cat /proc/mounts
2.11 fsck --检查及修复文件系统
-A 根据/etc/fstab这个文件进行修复文件系统
-f 强制修至
-y 修复的过程中自动yes
e2fsck --ext2|3|4
2.12 dumpe2fs --列出文件系统的超级块,block group的信息
dumpe2fs /dev/sda1
2.13 tune2fs --调整ext2|3|4文件系统的可调参数
fdisk /dev/sda -> /dev/sda14 mkfs -> ext2
tune2fs -j /dev/sda14 --ext2升级为ext3
fdisk /dev/sda -> /dev/sda15 mkfs -> ext3
tune2fs -O ^has_journal /dev/sda15 --降级为ext2
tune2fs -l /dev/sda1 --打印的超级块的信息
建议不要太多用这个东西
part3: LVM
1.基础概念
pv --物理卷
vg --卷组
lv --逻辑卷
disk1 lv1 mount /dir1
disk2 --> vg (new_vg1) -> lv2 mount /dir2
disk3 lv3 mount /dir3
1.物理卷PV
pvcreate /dev/sda[15-17]
pvcreate /dev/sda15
pvremove /dev/sda15
pvscan
pvdisplay
pvdisplay /dev/sda15
2.卷组VG
vgcreate newvg_weekend /dev/sda[15-17] --/dev/路径下创建一个叫做newvg_weekend的文件夹
vgscan
vgdisplay
vgextend newvg_weekend /dev/sdb --扩展VG newvg_weekend
vgreduce newvg_weekend /dev/sda15 --删除卷组中的pv,但要确保该pv没有被使用
3.逻辑卷LV
lvcreate -n lv1 -L 5G newvg_weekend --在newvg_weekend这个VG上创建一个lv,大小是5G
在/dev/weekend/下创建一个叫lv1链接,链接到/dev/dm-xx块设备文件上
lvcreate -n lv2 -l 1000 newvg_weekend --大小是4G,-l是在块的数量,一般一个块是4k
lvscan
lvextend -n /dev/newvg_weekend/lv1 -L +1G
4.在线扩容
lvextend -L +5G /dev/newvg_weekend/lv1 --扩容了5G
resize2fs /dev/newvg_weekend/lv1 --刷新lv1的容量
df -h
part4: RAID
raid --磁盘阵列
软raid --模拟的
硬raid --硬件支持的
raid0 --条带 n>=2 读写速度快
raid1 --镜像 死掉一个,还有一个,恢复数据;读写相对来说慢一点
raid5 --带奇偶校验检查的磁盘冗余 n>=3
raid10 --raid1+raid0 n>=4n
1.创建一个raid1
fdisk /dev/sda -> sdax sdaxx
mdadm -Cv /dev/md0 -l1 -n2 /dev/sdax /dev/sdaxx --创建RAID1,-l指raid的级别,-n是几块硬盘
mkfs -t ext4 /dev/md0 --格式化
cat /proc/mdstat --查看本机所有磁盘阵列状态
mdadm -D -s /dev/md0
mkdir /mnt/md0_dir
mount -t ext4 /dev/md0 /mnt/md0_dir
2.删除raid
umount /mnt/raid1_dir
mdadm -S /dev/md0 --停掉raid
mdadm --zero-superblock /dev/sda[18-19]
3.创建raid5
mdadm -Cv /dev/md1 -l5 -n3 /dev/sdax /dev/sdaxx /dev/sdaxxx
mkfs -t ext4 /dev/md1
mkdir /mnt/md1_dir
mount -t ext4 /dev/md1 /mnt/md1_dir