存储管理

从工作原理分类
机械HDD
固态SSD 采用电子存储介质 读写速度快 安全 噪音轻
磁盘尺寸:3.5 2.5 (常见) 1.8
插拔方式:热插拔 (服务器..), 非热插拔
硬盘接口:IDE ---- SATA(ATA 已经淘汰 )
SCSI ---- SAS (串行连接)
other ---- PCIE FC(光纤)
磁头、盘片、磁道、柱面、扇面Sector 一个扇区是512 字节
硬盘设备命名
物理硬盘: /dev/{s|h}d[a-z]
KVM虚拟化: /dev/vd[a-z](半虚拟化驱动) vda2
    /dev/sd[a-z](全虚拟化驱动)
sda s 接口类型 d 驱动器 a 第几块硬盘
sda1
sda2
sdb
sdc
sde3
s 接口类型 stat scsi sas
h 接口类型 ide
d 驱动器 drive 硬盘
KVM增加硬盘:
半虚拟化驱动磁盘: online
全虚拟化驱动磁盘: offline
HP服务器硬盘:
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2
从存储连接方式:
本地存储 例如DellR730本地磁盘
外部存储 scsi线 sata线 sas线 FC线
网络存储 以太网络(iscsi, glusterFS,ceph) FC网络
nfs samba ipsanglusterfs ceph分布式存储
启动文件里面存的是引导文件

从分区方式区分:给硬盘作分区
MBR(MSDOS)<2TB fdisk 14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑)
1个主分区 --&gt;1个扩展分区 ( 逻辑分区(最多16个))
3个主分区 ----&gt; 1个扩展分区(逻辑分区)
GPT >2TB gdisk(parted) 128个主分区
注:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!

1个主分区 -->1个扩展分区 ( 逻辑分区(最多16个))
3个主分区 ----> 1个扩展分区(逻辑分区)


文件系统id 从7开始换成xfs 6是ext

83  ext3或者ext4  默认的文件系统
82  swap  交换分区   solaris  支持为数不多的x86架构    
8e  lvm
7   ntfs
16  fat32

#ls /dev/sda 查看设备基本信息
#df 查看分区的信息 df -h 人性化显示 查看分区: df -Th lsdlk
-T (Type)文件系统类型
-i 还有多少i节点可用
#df -Th /dev/sda2 单独的查看某一个分区
Filesystem 1K-blocks Used Available Use% Mounted on
设备文件(门) 容量/大小 已经使用 百分比 挂载点(锁) 挂载的是设备文件
/dev/sda3 50842364 1207748 49634616 3% /
devtmpfs 490168 0 490168 0% /dev
tmpfs 499968 0 499968 0% /dev/shm
tmpfs 499968 6816 493152 2% /run
tmpfs 499968 0 499968 0% /sys/fs/cgroup
/dev/sda1 508580 110740 397840 22% /boot
tmpfs 99996 0 99996 0% /run/user/0
#fdisk -l /dev/das 只能查看MBR --->主引导记录

的是boot分区
System-->文件系统
Id---> 分区文件类型代码
Device Boot Start End Blocks Id System--&gt;文件系统
扇区 从这开始 到这 分区文件类型代码
/dev/sda1
2048 1026047 512000 83 Linux
/dev/sda2 1026048 3123199 1048576 82 Linux swap / Solaris
/dev/sda3 3123200 104857599 50867200 83 Linux
#fdisk /dev/sda 增加删除修改现有分区 fdisk -l 可以查看新建分区
p 查看分区状况
n 新建分区 p是新建主分区 e是新建扩展分区 l 是逻辑分区
d 是删除分区
t 指定文件系统id
l查看所有的文件系统id
#partx 用来更新分区表
更新分区表:两种方法
1)reboot
2)rhel5:
#partprobe
rhel6:
#partx -a /dev/sda
-a 添加分区表
-d 删除分区表
#mkfs 用来作文件系统
xfs:
#mkfs.xfs /dev/sdb1 格式化分区
ext:
1)#mkfs.ext4 /dev/sda5
2)#mkfs -t ext4 /dev/sda5级块信息

挂载:
#mount 查看挂载信息
#mount | grep sdb1 查看是否挂载上
首先创建挂点:mkdir /testmount
进行挂载: mount /dev/sdb1 /testmount
取消挂载:umount /testmount{挂载设备或者挂载点}
etc/fstab 开机自动挂载
etc/ init.b/ 永久挂载


swap分区

提升内存的容量 防止OOM(out of memory)
用的是硬盘空间 当作内存来用 当物理内存不够用的时候 使用swap分区
防止物理内存耗尽
没有挂载点的
存储管理

swap分区
作用: ‘提升‘ 内存的容量,防止OOM(Out Of Memory)
查看当前的交换分区

free -m -m表示的是单位

#swapon -s  单独查看交换分区的情况   

swap 分区的大小应该设置为物理内存的1.5-2倍。大内存最多16G
制作swap分区:
先用fdisk做一个分区
更新分区表
格式化:
#mkswap /dev/sda5

激活swap分区:
#swapon /dev/sda5
或者
#swapon -a (读取/etc/fstab) 显示更详细 -s

关闭swap分区:
#swapoff /dev/sda5

开机挂载swap分区:
# blkid /dev/sda5
/dev/vdb1: UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" TYPE="swap"
#vim /etc/fstab
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap default 0 0

====================================
使用File做交换分区:

dd if(输入文件inputfile)=/dev/zero of(output file)=/swap2.img bs=1M count=512 做出一个50M的文件,这个文件可以当硬盘用

或者
#dd </dev/zero >/swap2.img bs=1M count=512
#mkswap /swap2.img
#vim /etc/fstab
/swap2.img                                  swap    swap default 0 0
#swapon -a
swapon: /swap2.img: insecure permissions 0644, 0600 suggested.
#chmod 600 /swap2.img 
#swapon -a

======================================
对交换分调优
多个交换分区分布在不同的磁盘
挂载时,使用相同的优先级
#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
#swapon -a
#swapon -s
Filename Type Size Used Priority
/dev/sdb1 partition 524284 0 1
/dev/sdc1 partition 524284 0 1

#mkswap /swap2.img

vim /etc/fstab

/swap2.img                                  swap    swap d

mount命令

#mount
#mount 参数 挂载设备 挂载点
-t 文件系统类型
ext3 ext4 nfs xfs cifs ntfs-3g(需要-t指定) iso9660 --镜像的操作系统  只读 

NAS 存储: 网络附加存储
nfs:共享存储 linux操作系统之间的存储
cifs:共享存储 linux---windows linux ---- linux
DAS存储 直连式存储

  • -o 文件系统属性
  • -a 检测是否挂载成功
  • rw 读写
  • ro 只读
  • remount 重新挂载 根分区也可重新挂载--->mount -o remount /dev/mapper/cl-root
  • usrquota 支持用户磁盘配额 (rhel 6) mount 查看挂载
  • grpquota 支持组的磁盘配额(rhel 6)
  • uquota(rhel 7) 定额 启用用户磁盘配额核算,并限制(可选)强制执行
  • gquota(rhel 7) 启用组磁盘配额会计和限制(可选)强制执行
  • loop 挂载镜像的时候使用 -t iso9660 -o loop 映射成设备
  • 挂载镜像:mount C-------1611 /mnt
  • ls | wc -l 查看有 多少包
  • sync 同步传输
  • async 异步传输 速度快
  • defaults-->rw async suid sgid ...(man mount)*
    -o ro,defaults 多的覆盖默认的
  • rw ro
  • async sync
  • suid nosuid
  • sgid nosgid
  • exec noexec
  • dev nodev 解释文件系统上的字符或阻止特殊设备
  • relatime norelatime
  • atime noatime
  • auto noauto 在使用mount -a 命令的时候直接读取文件 没有挂载的直接挂载
  • nouser
  • (man mount)

    测试:async sync proc/vs/vm
    #mount /dev/sdb1 /test1
    #mount -o sync /dev/sdb2 /test2
    #time \cp -r /etc /mnt/test1
    #time \cp -r /etc /mnt/test2

    -B, --bind: 绑定目录到另一个目录上
    实验:
    [root@vm20 tmp]# mkdir test1
    [root@vm20 tmp]# touch test1/{a,b,c}
    [root@vm20 tmp]# ls test1/
    a b c
    [root@vm20 tmp]# mkdir test2
    [root@vm20 tmp]# mount -B test1 test2
    [root@vm20 tmp]# ls test2
    a b c

    查看test1和test2的inode,看起来是给test1做了一个硬连接
    [root@vm20 tmp]# ll -di test1 test2
    51906246 drwxr-xr-x. 2 root root 33 9月 24 02:38 test1
    51906246 drwxr-xr-x. 2 root root 33 9月 24 02:38 test2

    但纯做硬连接达不到下面的效果:
    [root@vm20 tmp]# mount -o defaults,ro -B test1 test2
    [root@vm20 tmp]# touch test2/a.txt
    touch: 无法创建"test2/a.txt": 只读文件系统
    [root@vm20 tmp]# touch test1/a.txt
    [root@vm20 tmp]# ls test1
    a  a.txt  b  c

    #umount 设备名称
    #umount 挂载点

    #mount -t nfs 192.168.0.253:/abc /opt
    #mount -t cifs //192.168.0.253/共享名称 /opt


    fuser:查看正在访问指定文件系统的进程:
    命令使用格式:
         # fuser -v MOUNT_POINT
    终止所有在正访问指定的文件系统的进程:慎用
         # fuser -km MOUNT_POINT

猜你喜欢

转载自blog.51cto.com/13767724/2121277