zoukankan      html  css  js  c++  java
  • 10.磁盘储存相关操作

    存储管理

    1.1 创建磁盘的流程

    1.首先需要先给虚拟机添加磁盘

    [root@localhost ~]# lsblk  #查看磁盘设备
    

    2.给磁盘分区,两种分区方式

    方式一 MBR分区:
    1.只能分小于2TB的磁盘。
    2.一共可分14个分区,4个主分区,一般搭配3个主分区,1个拓展分区(N个逻辑分区)
    分区工具:fdisk
    
    用法:
    [root@localhost ~]# fdisk -l /dev/sdb #查看磁盘分区信息
    [root@localhost ~]# fdisk /dev/sdb  #针对MBR格式,创建分区
    m  查看帮助
    n  新建分区
    w  保存退出
    
    方式二 GPT分区:
    1.一共可以分128个主分区。
    2.小于大于2TB的磁盘都可以分。
    
    用法:
    [root@localhost ~]# yum -y install gdisk  #安装分区工具
    [root@localhost ~]# gdisk -l /dev/sdc #查看磁盘基本信息
    [root@localhost ~]# gdisk /dev/sdc 
    n  创建分区
    p  打印分区信息
    w  保存
    

    分区常用操作

    分区完要记得刷新磁盘
    [root@localhost ~]# partprobe /dev/sdb #更新磁盘分区表,手动让内核更新分区表。不需要重启
    
    格式转换:
    注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
    [root@localhost ~]# parted -s /dev/sdc mklabel gpt   #将/dev/sdc(MBR格式)转换成(GPT格式)
    [root@localhost ~]# parted -s /dev/sdc mklabel msdos #将/dev/sda(GPT格式)转换成(MBR格式)
    

    3.创建文件系统(格式化)centos7默认使用xfs

    分区完需要创建文件系统也就是格式化,才能使用。

    方式一 EXT 
    红帽自己的,家族支持度最广
    建文件系统(格式化)慢、修复慢
    文件系统存储容量有限
    [root@localhost ~]# mkfs.ext4 /dev/sdb1   #格式化成ext4格式的文件系统
    
    方式二 XFS
    高容量,支持大存储
    高性能,创建/修复文件系统快
    格式化快
    inode 与 block 都是系統需要用到時,才动态配置产生
    [root@localhost ~]# mkfs.xfs /dev/sdc2   #格式化成xfs格式的文件系统
    

    4.磁盘挂载与使用

    做好文件系统的磁盘挂载到目录中开始使用。

    磁盘挂载步骤

    [root@localhost ~]# mkdir /mnt/disk1   #创建挂载目录
    [root@localhost ~]# mount /dev/sdb1 /mnt/disk1/ #把磁盘挂载到目录上
    [root@localhost ~]# df -Th #查看磁盘挂载与磁盘使用空间
    [root@localhost ~]# umount /mnt/disks/ #取消挂载
    [root@localhost ~]# umount -l /mnt/disk1/ #强行卸载,即使目录有资源被进程占用,也可以卸载
    

    5.实现磁盘开机自动挂载的两种方式

    方式一 通过修改文件的方式挂载:
    专门挂载的文件 /etc/fstab
    [root@localhost ~]# blkid /dev/sdb1  #查看uuid和文件系统类型
    [root@localhost ~]# vim /etc/fstab 	 #进入编辑
    格式:挂载的磁盘的uuid 挂载的路径 文件系统类型 文件系统属性 是否备份 是否检查
    UUID=9588b6aa-c057-450d-bbeb-45ffda280b98 /boot  xfs  defaults  0 0
    解释:UUID=xxx /boot路径 xfs文件系统 defaults属性 0不备份 0不检查
    
    方式二 命令的方式:/etc/rc.d/rc.local 
    这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次。/etc/rc.local 是 /etc/rc.d/rc.local的软链接;
    [root@localhost ~]# vim /etc/rc.d/rc.local #将挂载命令直接写到文件中
    mount /dev/sdc/1 /mnt/disk2/
    
    [root@localhost ~]# chmod +x /etc/rc.d/rc.local #添加执行权限,不然不会执行
    [root@localhost ~]# reboot #重启生效
    

    1.2 制作可扩展逻辑卷

    1.2.1 逻辑卷LVM概述

    lvm概念:LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。

    1.2.2 为什么要做逻辑卷

    当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。

    使用LVM主要是增加了系统的扩展性,可以跨分区,多个硬盘组合。

    1.2.3 制作逻辑卷步骤

    1.拥有磁盘

    制作lvm的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。

    必须是没有做文件系统的。

    2.做成物理卷pv

    [root@linux-server ~]# yum install -y lvm2 #安装命令
    [root@linux-server ~]# pvcreate /dev/sdb   #键新磁盘或分区创建成pv
    [root@linux-server ~]# pvs     #查看pv
    [root@linux-server ~]# pvscan  #详细查看pv
    

    3.加入卷组vg

    [root@linux-server ~]# vgcreate vg1 /dev/sdb   #创建vg1 把/dev/sdb加入
    参数:-s 16M 指的是在分区的时候指定vg的大小。
    [root@linux-server ~]# vgs   #查看vg
    [root@linux-server ~]# vgscan
    [root@linux-server ~]# vgdisplay #详细查看vg
    

    4.创建逻辑卷lv

    [root@linux-server ~]# lvcreate -L 150M -n lv1 vg1  #创建lv从vg1里拿空间
    参数解释: -L 指定lv的大小  -n 给创建的lv起一个名字
    [root@linux-server ~]# lvcreate -l 20 -n lv2 vg1    #采用PE方式在创建一个lv
    参数解释: -l 20 按PE方式创建指定大小20
    [root@linux-server ~]# lvs   #查看lv
    

    6.制作文件系统并挂载使用

    [root@linux-server ~]# mkfs.xfs /dev/vg1/lv1 #制作xfs格式文件系统
    [root@linux-server ~]# mkfs.ext4 /dev/vg1/lv2 #制作ext格式文件系统
    [root@linux-server ~]# mkdir /mnt/lv{1..2} #创建挂载目录
    [root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1 #挂载使用
    [root@linux-server ~]# mount /dev/vg1/lv2 /mnt/lv2 #挂载使用
    [root@linux-server ~]# umount /mnt/lv2 #取消挂载
    #注意设置好开机自动挂载。
    设置开机自动挂载的两种方式自己琢磨。
    

    1.2.4 LVM逻辑卷扩容

    分两种情况

    1.lv逻辑卷所在的vg卷组空间不够(这时就要扩大vg卷组)

    1.获取没有创建系统的磁盘或分区。
    2.做成物理卷pv。
    [root@linux-server ~]# pvcreate /dev/sdc 
    3.直接给已有的vg扩容
    [root@linux-server ~]# vgextend vg1 /dev/sdc #vg1:已有的vg卷组名字
    [root@linux-server ~]# vgs #查看vg是否扩容成功
    

    2.lv逻辑卷所在的vg卷组有空间(直接个lv扩容)

    [root@linux-server ~]# vgs  #查看vg卷组空间是否充足
    [root@linux-server ~]# lvextend -L 850M /dev/vg1/lv1  #扩展lv1大小为850M
    [root@linux-server ~]# lvextend -L +850M /dev/vg1/lv1 #在原有基础上加850M
    [root@linux-server ~]# lvextend -l +15 /dev/vg1/lv1 #在原有基础上加15个PE
    [root@linux-server ~]# lvs #查看是否扩容
    

    FS(file system)文件系统扩容

    [root@linux-server ~]# xfs_growfs /dev/vg1/lv1  #xfs扩容
    [root@linux-server ~]# resize2fs /dev/vg1/lv2   #ext4扩容
    [root@linux-server ~]# df -Th
    

    1.3 交换分区管理

    1.3.1 介绍什么交换分区Swap

    Swap---也叫虚拟内存

    #当内存不够的时候内核会随机杀死它认为占用内存多的进程。
    #这时我们就需要交换分区Swap
    作用: ‘提升‘ 内存的容量,防止OOM(Out Of Memory)
    
    如何制作交换分区?
    #我们可以将硬盘空间拿来当作内存来用
    什么时候用到交换分区?
    #当物理内存不够用的时候使用swap分区,防止物理内存耗尽
    

    swap分区大小设置规则

    在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。
    内存小于4GB时,推荐不少于2GB的swap空间;
    内存4GB~16GB,推荐不少于4GB的swap空间;
    内存16GB~64GB,推荐不少于8GB的swap空间;
    内存64GB~256GB,推荐不少于16GB的swap空间。
    

    1.3.1 交换分区的制作

    1.分出一块空间出来制作交换分区

    #增加交换分区,可以是基本分区,LVM,File
    
    [root@linux-server ~]# free -m 	  #查看当前的交换分区
    [root@linux-server ~]# swapon -s  #查看交换分区信息
    [root@linux-server ~]# fdisk /dev/sdd     #分一个主分区出来
    [root@linux-server ~]# partprobe /dev/sdd #刷新分区表
    [root@linux-server ~]# ll /dev/sdd*
    

    2.制作交换分区(初始化)

    [root@linux-server ~]# mkswap /dev/sdd1  #初始化
    

    3.挂载使用

    [root@linux-server ~]# blkid /dev/sdd1  #查看UUID
    /dev/sdd1: UUID="d2fd3bc0-10c0-4aeb-98ea-6b640d29b783" TYPE="swap" 
    [root@linux-server ~]# vim /etc/fstab  #制作开机挂载
    /dev/sdd1       swap    swap    defaults        0 0
    [root@linux-server ~]# swapon -a #激活swap分区(读取/etc/fstab)
    [root@linux-server ~]# swapon -s #查看swap分区
    #swapoff /dev/sdd1  #关闭swap分区
    

    拓展:file制作swap方法

    [root@linux-server ~]# dd if=/dev/zero of=/swap2.img bs=1M count=512
    解释:dd  读入从空设备里面拿空块 到交换分区 块多大  一共多少兆
    [root@linux-server ~]# mkswap /swap2.img  #初始化
    [root@linux-server ~]# vim /etc/fstab
    /swap2.img      swap    swap    defaults        0 0
    [root@linux-server ~]# chmod 600 /swap2.img #交换分区权限需要设置为600,默认644权限不安全。
    [root@linux-server ~]# swapon -a #激活swap分区(读取/etc/fstab)
    [root@linux-server ~]# swapon -s #查看swap分区
    

    1.4 raid磁盘阵列

    RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
    

    所有服务器在安装操作系统之前必须先做raid【常识】

    作用:为了保证数据完整性,防止数据丢失。

    最常用的raid级别:0、1、5、6

    raid0:数据条带卷
    最少需要2块磁盘,分别往每一块磁盘上写一部分数据
    优点:读写速度快,磁盘利用率:100%
    缺点:不提供数据冗余,无数据检验,不能保证数据的正确性,存在单点故障。
    应用场景:对数据完整性要求不高的场景,如:日志存储,个人娱乐
    
    raid1:镜像raid
    一般需要2块磁盘,每块磁盘上都会存储一份完整数据。
    优点:提供数据冗余,读速度快,数据双倍存储安全性高支持容错。
    缺点:写速度慢,无数据校验,磁盘利用率:50%
    应用场景:存放重要数据,如数据存储领域
    
    raid5:目前最常见的RAID等级
    raid5最少需要3块磁盘,磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上。
    优点:
    可以找回丢失的数据,数据可以通过校验计算得出。
    冗余磁盘(需要4快磁盘将其中一块做热备),当某一块磁盘坏掉后,冗余磁盘会自动替换上
    有校验机制,读写速度高,磁盘利用率高。
    缺点:
    磁盘越多安全性能越差
    应用场景:安全性高,如金融、数据库、存储等。
    

    1.5 文件系统

    本地文件系统,不能在网络上用。
    ntfs  xfs  ext2,ext3,ext4
    网络文件系统,也可以在本地用。
    nfs   glusterfs   hdfs   ceph
    作用:
    管理文件的一套系统。
    文件的编辑,拷贝,粘贴,移动。
    #node :inode块也叫索引。专门存储inode信息。里面是文件的属性,权限,访问时间。
    

    inode的内容

    每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

    文件的字节数,文件拥有者的User ID,文件的Group ID
    文件的读、写、执行权限
    文件的时间戳,共有三个:
    	ctime指inode上一次变动的时间,
    	mtime指文件内容上一次变动的时间,
    	atime指文件上一次打开的时间。
    
    链接数,即有多少文件名指向这个inode
    文件数据block的位置
    
    文件属性包含:
    文件的权限,链接个数,所有者,所属组,文件大小,修改时间,文件存放的路径
    

    查看inode信息

    [root@qfedu.com ~]# stat /etc/hosts #查看该文件的inode详细信息
    [root@qfedu.com ~]# ls -i /etc/hosts  #-i:查看inode号
    
  • 相关阅读:
    中间件面试总结
    1.angular js 学习网址
    摄影构图
    mybatis学习(四)
    mybatis学习(三)
    mybatis学习(二)
    mybatis 学习(一)
    mysql 使用过程中出现问题
    springboot
    java 关键字
  • 原文地址:https://www.cnblogs.com/eba001/p/14287478.html
Copyright © 2011-2022 走看看