存储技术概览
硬盘分类
机械硬盘(HDD)
由多个盘片组成
扇区(Sector):传统512B,现在4KB
以前是按照柱面为单位进行分区的,现在以扇区为单位进行分区
读取数据过程比较缓慢
固态硬盘(SSD)
各种性能指标
硬盘接口
IDE – SATA(Serial ATA)
SCSI – SAS(Serial Attached SCSI)串行连接SCSI
other – PCIE FC
硬盘设备命名
物理硬盘: /dev/sd[a-z]
KVM虚拟化:
/dev/vd[a-z] (半虚拟化驱动)
/dev/sd[a-z] (全虚拟化驱动)
KVM增加硬盘
半虚拟化驱动磁盘:online
全虚拟化驱动磁盘:offline
HP服务器磁盘
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器,d0第一块磁盘,p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器,d0第一块磁盘,p2分区2
存储连接方式
本地存储
外部存储 SCSI线 SATA线 SAS线 FC线
网络存储 以太网络(iscsi, glusterFS, ceph) FC网络
分区方式
分区方式 | 分区容量 | 分区软件 | 最多 |
---|---|---|---|
MBR | <2TB | fdisk | 14个分区(4个主分区,扩展分区,逻辑分区),例如:3主+1扩展(n逻辑) |
GPT | >2TB | gdisk(parted) | 128个主分区 |
基本分区管理
基本分区 -> 创建文件系统 -> 挂载
基本分区
fdisk
lsblk #查看块设备 fdisk /dev/vda fdisk -l /dev/sda partprobe /dev/sda #重新读取分区表
gdisk
gdisk /dev/sda partprobe /dev/sda
创建文件系统(格式化)
CentOS7默认使用XFS
mkfs.xfs /dev/vdb1 mkfs -t xfs /dev/vdb1 mkfs.ext4 /dev/vdb2
挂载
mkdir /mnt/disk1 mkdir /mnt/disk2 mount -t xfs -o ro /dev/vdb1 /mnt/disk1 #手动挂载 unmount /mnt/disk1 # 自动挂载 vi /etc/fstab 挂载设备 挂载目录 文件系统 挂载选项 备份 检测 /dev/vda1 /data3 xfs defaluts 0 0
LVM管理
LVM概览
基本分区的弊端:分区大小一开始就确定好了,以后不易扩展
解决办法:逻辑卷(Logical Volume Management)
逻辑卷可以让一个分区跨越多块硬盘
逻辑卷 -> Filesystem -> mount
逻辑卷的优势:可以在线扩容
PE Physical Extent 物理扩展 4M 8M 16M 32M 64M 创建VG时指定 -s 8M
LE Logical Extent 逻辑扩展
LVM创建
准备物理磁盘
ll /dev/vd{c,d,e}
PV
pvscan #查看当前PV pvs pvdisplay pvcreate /dev/vda
VG
vgscan vgs vgdisplay vgcreate datavg /dev/vda
LV
lvscan lvs lvdosplay lvcreate -L 100M -n lv1 datavg lvcreate -l 25 -n lv2 datavg
格式化
mkfs.ext4 /dev/datavg/lv1 mkfs.xfs /dev/datavg/lv2
挂载
mkdir /mnt/lv1 mkdir /mnt/lv2 vim /etc/fstab /dev/datavg/lv1 /mnt/lv1 ext4 defaults 0 0 /dev/datavg/lv2 /mnt/lv2 xfs defaults 0 0 df -Th
VG扩容及缩小
pass
LVM FS扩容
paaa
LVM snapshot 应用环境
pass
交换分区swap
pass
EXT文件系统详解
pass
文件查找
grep 文件内容过滤
which 文件查找,针对文件名
命令文件
[root@tylersean ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [root@tylersean ~]# which cd /usr/bin/cd [root@tylersean ~]# whereis vim vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz # 环境变量 [root@tylersean ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # 如何找想要的软件包 yum provides locate
任意文件
locate(找数据库)
updatedb # 首先更新数据库 locate hosts
find(遍历硬盘)
find /etc -name "ifcfg-eth0"
找到以后处理的动作
-ls
-delete
-exec
-ok
find /etc -name "ifcfg*" -print find /etc -name "ifcfg*" -ok cp -rvf {/tmp \;}
文件打包及压缩
复制未打包的文件到远程主机
du -sh /etc time scp -r /etc root@192.168.5.32:tmp
文件打包与压缩
tar -czf etc1.tar.gz /etc # -z 调用gzip tar -cjf etc1.tar.bz2 /etc # -j 调用bzip2 tar -cJf etc1.tar.xz /etc # -J 调用xz [root@tylersean ~]# file etc1.tar.gz etc1.tar.gz: gzip compressed data, last modified: Wed May 18 08:52:23 2022, from Unix, original size 24627200
解压解包
tar -tf etc1.tar.gz # 查看压缩包内容 tar -xzvf etc1.tar.gz # tar -xvf etc1.tar.gz #无需指定压缩工具 tar -xvf etc1.tar.gz -C /var/tmp #解压到/var/tmp tar xf etc1.tar.gz #静默解压 unzip xxx.zip