了解Linux磁盘及分区的过程-程序员宅基地

技术标签: 运维  linux  服务器  

 1.虚拟机添加磁盘

关机添加,自动识别 或 开机添加,命令识别: 扫描磁盘

 echo "- - -" >> /sys/class/scsi_host/host0/scan
	 echo "- - -" >> /sys/class/scsi_host/host1/scan
	 echo "- - -" >> /sys/class/scsi_host/host2/scan 
	 fdisk -l

注: 必须分区 格式化   

 2.文件系统

操作系统用于明确存储设备(常见的是磁盘)或分区上的文件的方法和数据结构; 即在存储设备上组织文件的方法。

linux常见的文件系统:

EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本。

(1)Ext4的文件系统容量达到1EB,而文件容量则达到16TB

(2)理论上支持无限数量的子目录

(3)Ext4文件系统使用64位空间记录块数量和i-节点数量(相当于地址)

(4)Ext4的多块分配器支持一次调用分配多个数据块 scont 7之后xfs

xfs是一种非常优秀的日志文件系统,SGI公司设计的,被称为业界最先进的、最具可升级性的文件系统技术

(1)根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

(2)采用优化算法,日志记录对整体文件操作影响非常小

(3)是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间

(4)能以接近裸设备I/O的性能存储数据

1、NFS:Network FileSystem,网络文件系统
    透过网络,让不同的主机、不同的操作系统可以共享存储的服务。
    NFS 在文件传送或信息传送过程中依赖于 RPC(Remote Procedure Call)协议,即远程过程调用,
    NFS是一个文件存储系统,而 RPC 负责信息的传输

3.磁盘分区方式

MBR:主引导记录,支持4主或3主1扩展多逻辑,每分区最大2TB,兼容性好。

GPT:是GUID分区表(GUID Partition Table)的缩写; 含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。 自纠错能力强,一块磁盘上主分区数量不受(4个的)限制,支持大于18EB的总容量, 几乎没有上限,最大支持到128个分区,分区大小支持到256TB。

分区命令:

fdisk /dev/sdb
gdisk /dev/sdc

分区号码有区别:fdisk 82 gdisk 8200

p: 显示当前硬件的分区,包括没有保存的改动

n: 创建一个新的分区

d:删除一个分区

w: 保存并退出

q: 不保存退出

t: 修改分区类型(文件系统类型)

l: 显示所支持的所有类型

4.分区格式化

	mkfs.ext4 /dev/sdb1
	mkfs.xfs  /dev/sdc1

5.挂载,永久挂载 挂载会覆盖本来的文件内容

	mount
	vim /etc/fstab

系统磁盘高级管理

1.LVM:逻辑卷,动态调整分区大小,扩展性好

1)创建PV pvcreate :将实体 partition 创建成为 PV ;

pvscan :搜寻目前系统里面任何具有 PV 的磁盘;

pvdisplay :显示出目前系统上面的 PV 状态;

pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性

2)创建VG vgcreate :创建 VG 的 (-s :后面接 PE 的大小,默认4M)

vgscan :搜寻系统上面是否有 VG 存在?

vgdisplay :显示目前系统上面的 VG 状态;

vgextend :在 VG 内增加额外的 PV ;

vgreduce :在 VG 内移除 PV;

vgchange :设置 VG 是否启动 (active);

vgremove :删除一个 VG

3)创建LV lvcreate :创建 LV lvscan :查询系统上面的 LV ;

lvdisplay :显示系统上面的 LV 状态

lvextend :在 LV 里面增加容量!

xfs_growfs 同步磁盘(先内存扩展在磁盘扩展)

lvreduce :在 LV 里面减少容量;

lvremove :删除一个 LV lvresize :对 LV 进行容量大小的调整

例:创建卷组mailbox,逻辑卷mail

fdisk /dev/sdb
    fdisk /dev/sdc
    fdisk /dev/sdd
    fdisk -l
    pvcreate /dev/sdb1 /dev/sdc1
    vgcreate -s 16m mailbox /dev/sdb1 /dev/sdc1
    vgscan
    vgdisplay mailbox 
    lvcreate -n mail1 -L 10G mailbox
    lvdisplay /dev/mailbox/mail1 
    mkdir /mail1
    mkfs.xfs /dev/mailbox/mail1 
    mount /dev/mailbox/mail1 /mail1/
    lvcreate -n mail2 -l 1000 mailbox
    lvdisplay /dev/mailbox/mail2
    mkdir /mail2
    mkfs.xfs /dev/mailbox/mail2
    mount /dev/mailbox/mail2 /mail2
    echo "/dev/mailbox/mail1  /mail1  xfs  defaults 0 0" >> /etc/fstab 
    echo "/dev/mailbox/mail2  /mail2  xfs  defaults 0 0" >> /etc/fstab 
    cat /etc/fstab 
    vgdisplay mailbox 
    lvextend -L 15G /dev/mailbox/mail1
    xfs_growfs /dev/mailbox/mail1
    lvextend -L 30G /dev/mailbox/mail1
    xfs_growfs /dev/mailbox/mail1
    vgextend mailbox /dev/sdd1
    vgdisplay mailbox
    lvextend -L 30G /dev/mailbox/mail1
    xfs_growfs /dev/mailbox/mail1
    df -hT
    lvextend -L +4G /dev/mailbox/mail2
    xfs_growfs /dev/mailbox/mail2

如果是ext4文件系统的 使用resize2fs命令

磁盘配额

umount /data
mount -o usrquota(用户配额)
grpquota(组配额)
 /dev/vg0/lv1 /data
xfs_quota -x -c 'limit -u bsoft=20M bhard=40M isoft=6 ihard=8 test' /data
vim

修改配置文件自行挂载开启配额

echo "/dev/vg0/lv1     /backup      xfs      defaults,usrquota,grpquota 0 0" >> /etc/fstab

-x:表示启动专家模式,再当前模式下以允许对配额系统进行修改的所有管理命令可用

-c:表示直接调用管理命令

-u:指定用户账号对象

-g:指定组账号对象

bsoft:设置磁盘容量的软件限制数值

bhard:设置磁盘容量的硬限制数值(最大的容量)b(磁盘 )

isoft:设置磁盘文件数的软限制数值

ihard:设置磁盘文件数的硬限制数值 i节点(地址))(创建一个文件或目录都会使用一个节点(地址))(创建一个文件或目录都会使用一个节点分配地址)

例:添加第二块磁盘,挂载到/jimi

xfsdump -f /opt/dump_sdb1 /dev/sdb1		#备份磁盘分区
xfsrestore -f /opt/dump_sdb1 /jimi		#还原
xfsdump -I 				#查看所有备份记录

注意:脚本免交互命令

xfsdump -f /opt/dump_sdb2 /dev/sdb1 -L sdb1_opt_v1 -M sdb1 
jiaohu

2.VDO:   Virtual Data Optimizer 通过数据去重、压缩的方式来优化存储空间

vdo 命令语法压缩卷 create 创建一个VDO卷及其关联索引使其可用。

remove 删除一个或多个已停止的VDO卷和相关卷索引。

modify 修改一个或所有VDO的配置参数卷。更改将在VDO下次运行时生效设备启动;已经运行的设备则不是受到影响。

list 显示已启动VDO卷的列表。如果,所有指定它同时显示已启动和未启动卷。

start 启动一个或多个已停止、激活的VDO卷相关的服务。

status 以YAML格式报告VDO系统和卷状态。但是,这个命令不需要root特权如果没有,信息将是不完整的。

stop 停止一个或多个正在运行的VDO卷和相关卷服务。

activate 激活一个或多个VDO卷。激活卷可以使用“开始”命令启动。

deactivate 使一个或多个VDO卷失效。停用不能通过“start”命令启动卷。停用当前正在运行的卷不会停止它。

growLogical 增加VDO卷的逻辑大小。卷必须存在并且必须正在运行。

growPhysical 增加VDO卷的物理大小。卷必须存在并且必须正在运行。

实例:

(3)创建一个8G大小的vdo卷

vdo create --name=vdoname --device=/dev/sde1 --vdoLogicalSize=8G

(4) 查看vdo卷

vdo list
	lsblk /dev/sde

(5) 格式化vdo卷

mkfs.xfs /dev/mapper/vdoname 

(6) 查看vdo卷属性

	vdostats --si
	blkid /dev/mapper/vdoname

(7) 自动挂载

mkdir /vdodir
	echo "/dev/mapper/vdoname    /vdodir      xfs     x-systemd.requires=vdo.service  0 0" >> /etc/fstab

(8) 删除vdo卷

umount /vdodir vdo remove --name=vdoname

 stratis(centos8)

便捷的使用精简置备(Thin Provisioning)、快照(Snapshots)、基于池(Pool-based)的管理和监控等高级存储功能; 基于xfs文件系统格式,创建filesystem后不需要格式化

(1) 安装stratis

yum install -y stratisd stratis-cli
	systemctl enable stratisd

(2) 创建pool池,大于1G

stratis pool create pool-one /dev/sda1
	stratis pool list

(3) 向已经存在的pool池中添加块设备

	stratis pool add-data pool-one /dev/sda2

(4) 同时将两块块设备添加到同一个pool池中

	stratis pool create pool-two /dev/sda3 /dev/sda4

(5) 查看pool-one池和pool-two池中所使用的块设备

	stratis blockdev list pool-one
	stratis blockdev list pool-two

(6) 在pool-one池中创建filesystem(一次只能创建一个filesystem)

	stratis filesystem create pool-one file-one
	stratis filesystem list

(7) 挂载filesystem

	mkdir /fsdir
	mount /stratis/pool-one/file-one /fsdir/

(8) 永久挂载

	blkid /stratis/pool-one/file-one
	echo "UUID=deeb42ce-5715-42ca-b33a-fcbfece6dd0a     /fsdir   xfs   defaults    0 0" >> /etc/fstab

4.raid:

磁盘阵列(Redundant Arrays of Independent Disks)由独立磁盘构成的具有冗(容)余能力的阵列。

Raid 0(条带): 读写速度得到提升,但不具备数据冗余?,不推荐,最少2块硬盘
Raid 1(镜像): 写性能下降,读性能提升,相反冗余能力提升。但磁盘利用率是1/2,最少2块硬盘
Raid 1+0: 同组不能都坏掉,目前主流的方案。最少4块
Raid 0+1: 同组都可以坏,不能是不同组的相同标号。最少4块硬盘
Raid 0+1 和Raid1+0的空间利用率都是1/2
Raid 5(校验码机制):读写都提升,冗余有,空间利用率(n-1)/n 只能坏一块。最少3块硬盘
Raid 5+0:具有RAID 5和RAID 0的共同特性。它由两组以上RAID 5磁盘组成(每组最少3个)。
Raid 6 可以看做是raid5的升级版,它支持同时损坏2块磁盘。最少是4块盘
Raid 7 可以看做是raid5的升级版,它支持同时损坏3块磁盘。最少是5块盘
-C, --create:创建一个新的阵列
-a, --auto{=no,yes,md,mdp,part,p}{NN}:(自动)
-l, --level=:设定 raid level.
-n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改
-v, --verbose:显示细节
-D, --detail:打印一个或多个 md device 的详细信息
-x ,spare-devices= :指定初始阵列的富余device数目。热备盘
-S 关闭mdadm -S /dev/md0(关闭前先取消挂载)

(1) 分区

	gdisk /dev/sdb
	FD00

(2) 创建raid0,查看raid设备,挂载

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
	cat /proc/mdstat
	mdadm -D /dev/md0
	mkfs.xfs /dev/md0
	mkdir /raid0
	mount /dev/md0 /raid0
	echo "/dev/md0     /raid0   xfs   defaults    0 0" >> /etc/fstab

(3) 创建raid1

	mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{3,4}
	mdadm -D /dev/md1
	mkfs.xfs /dev/md1
	mkdir /raid1
	mount /dev/md1 /raid1
	echo "/dev/md1     /raid1   xfs   defaults    0 0" >> /etc/fstab
	mdadm /dev/md1 -f /dev/sdb4		#模拟损坏
	mdadm /dev/md1 -r /dev/sdb4		#物理拔除
	mdadm /dev/md1 -a /dev/sdb5		#添加新盘
umount /dev/md1					#卸载
mdadm -S /dev/md1				#关闭md1
mdadm -A /dev/md1				#重启md1,报错(损坏盘)

mdadm -AR /dev/md1 /dev/sdb{3,4}	#从新声明md1磁盘成员
mdadm /dev/md1 -a /dev/sdb4		#添加损坏盘
mdadm /dev/md1 -a /dev/sdb5		#添加冗余盘

mdadm -D --scan > /etc/mdadm.conf	#扫描并添加raid信息到自启文件
mdadm -S /dev/md1				#重启测试
mdadm -A /dev/md1

(4) 创建raid5

mdadm -Cv /dev/md5 -a yes -n 3 -l 5 -x 2  /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
	

(5) 创建raid10

	mdadm -Cv /dev/md10 -a yes -n 4 -l 10 -x 1  /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/d18631089566/article/details/132109953

智能推荐

AndroidStudio无代码高亮解决办法_android studio 高亮-程序员宅基地

文章浏览阅读2.8k次。AndroidStudio 升级到 4.2.2 版本后,没有代码高亮了,很蛋疼。解决办法是:点开上方的 File,先勾选 Power Save Mode 再取消就可以了。_android studio 高亮

swift4.0 valueForUndefinedKey:]: this class is not key value coding-compliant for the key unity.'_forundefinedkey swift4-程序员宅基地

文章浏览阅读1k次。使用swift4.0整合Unity出现[ valueForUndefinedKey:]: this class is not key value coding-compliant for the key unity.'在对应属性前加@objc 即可。或者调回swift3.2版本_forundefinedkey swift4

Spring Security2的COOKIE的保存时间设置_springsecurity 设置cookie失效时间-程序员宅基地

文章浏览阅读1.3k次。http auto-config="true" access-denied-page="/common/403.htm"> intercept-url pattern="/login.**" access="IS_AUTHENTICATED_ANONYMOUSLY"/> form-login login-page="/login.jsp" defau_springsecurity 设置cookie失效时间

view滑动冲突解决实战篇2(外部拦截法)_viewpage2外部拦截事件-程序员宅基地

文章浏览阅读1.1k次。继上篇内部拦截法需求还是跟上篇一样。只不过这次用外部拦截法来解决;只要在父容器添加如下代码就可以解决了滑动冲突,很简单,套模板就行 // 分别记录上次滑动的坐标(onInterceptTouchEvent) private int mLastXIntercept = 0; private int mLastYIntercept = 0; @Override public bo_viewpage2外部拦截事件

汇编 堆栈 变量存储 指针_汇编语言栈指针-程序员宅基地

文章浏览阅读2.5k次,点赞7次,收藏9次。本文章系作者原创,未经许可,不得转载。汇编 堆栈 变量存储 指针先说栈的概念,栈其实也是一种。。。。。先说内存的概念吧。。。。。额 先说计算机吧,简单来说的话,可以把计算机理解成由CPU,内存,硬盘组成,而CPU内部又包括一种叫做内部寄存器的东西,包括 数据寄存器: AX,BX,CX,DX; 段寄存器: CS,DS,ES,SS; 指针与变址寄存器SP,BP,SI,DI; ..._汇编语言栈指针

架构师之路:从码农到架构师你差了哪些_web架构师-程序员宅基地

文章浏览阅读1w次,点赞14次,收藏56次。转载自 架构师之路:从码农到架构师你差了哪些 Web应用,最常见的研发语言是Java和PHP。 后端服务,最常见的研发语言是Java和C/C++。 大数据,最常见的研发语言是Java和Python。 可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。有..._web架构师

随便推点

python怎么输出logistic回归系数_python - Logistic回归scikit学习系数与统计模型的系数 - SO中文参考 - www.soinside.com...-程序员宅基地

文章浏览阅读1.2k次。您的代码存在一些问题。首先,您在此处显示的两个模型是not等效的:尽管您将scikit-learn LogisticRegression设置为fit_intercept=True(这是默认设置),但您并没有这样做statsmodels一;来自statsmodels docs:默认情况下不包括拦截器,用户应添加。参见statsmodels.tools.add_constant。另一个问题是,尽管您处..._sm fit(method

VS2017、VS2019配置SFML_vsllfqm-程序员宅基地

文章浏览阅读518次。一、sfml官网下载32位的版本 一样的设置,64位的版本我没有成功,用不了。二、三、四以下这些内容拷贝过去:sfml-graphics-d.libsfml-window-d.libsfml-system-d.libsfml-audio-d.lib..._vsllfqm

vc——类似与beyondcompare工具的文本比较算法源代码_byoned compare 字符串比较算法-程序员宅基地

文章浏览阅读2.7k次。由于工作需要,要做一个类似bc2的文本比较工具,用红色字体标明不同的地方,研究了半天,自己写了一个简易版的。文本比较的规则是1.先比较文本的行数,2.再比较对应行的字符串的长度3.再比较每一个字符串是否相同。具体代码如下:其中m_basestr和m_mergestr里面存放是待比较的字符串int basecount=m_basestr.GetLength(); int mergec_byoned compare 字符串比较算法

aetna java_pom.xml-程序员宅基地

文章浏览阅读79次。xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">org.apacheapache174.0.0org.apache.atlasapache-atlas3.0.0-SNAPSHOTMetadata Management and Data Govern..._atlas.pom

生成随机数_<math.h>随机数-程序员宅基地

文章浏览阅读1.5k次。C语言中有可以产生随机数据的函数,需要添加 stdlib. h头文件与time.h头文件。首先在main函数开头加上“ srand(unsigned)time(NULL));",这个语句将生成随机数的种子(不懂也没关系,只要记住这个语句,并且知道 srand是初始化随机种子用的即可)。然后,在需要使用随机数的地方使用 rand()函数。下面是一段生成十个随机数的代码:程序代码:#incl..._随机数

Z-Blog编辑器支持ppt导入-程序员宅基地

文章浏览阅读47次。图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。加入下面的代码://判断剪贴板的内容是否包含文本//首先解释一下为什么要判断文本是不是为空//在ctrl+c word中的文字或者图片之后会返回1种(image/png)或者4种t