• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
2022
博客园    首页    新随笔    联系   管理    订阅  订阅

磁盘基础与LVM介绍

1. 磁盘基础介绍

什么是磁盘  什么是软盘  什么是硬盘 

磁盘的基本结构

盘片  

磁道  

扇区      512B

柱面  

磁头  


磁盘的接口:

IDE  SCSI 		#淘汰了


SATA III    SAS   #企业级 


SSD( SATA III    PCIE )

M2 超极本的接口标准 MSATA

机械硬盘  HDD					固态硬盘   SSD

容量大价格低						容量小价格贵  

抗击打能力弱 						抗击打能力强  

读写速度慢						 读写速度快  

数据损坏恢复易						数据恢复难

寿命一直使用						 使用期限有一定限制   
磁盘的命名方式:

/dev/sda1		#第一块物理硬盘的第一个分区

/dev/sdb3		#第二块物理硬盘的第三个分区 

/dev/vdc5		#第三块虚拟硬盘的第5个分区 	


sd		#物理硬盘
 
 
vd		#虚拟硬盘 


磁盘的相关单位和术语


尺寸:		2.5英寸    3.5英寸  

数据大小:	bit   B   KB   MB   GB   TB    PB    EB  

单位换算:   1024     1B=8b  

转速:	RPM    转/每分钟    5400    7200     10k     15k  

IOPS    衡量磁盘读写 IO的单位   每秒的输入输出 

MBR的位置:  0磁头0磁道1扇区      512字节  


446字节  MBR引导记录    

64字节4个主分区  

2字节分区结束标识符  


分区工具:


fdisk		#适用于2TB的分区    MBR     只能有4个主分区  


gdisk		#适用于2TB以上     GPT	   128个主分区 

2. Fdisk分区


MBR  		2T下      只能有4个主分区  

[@mm@qls ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 97.5G  0 part /
sr0     11:0    1  4.3G  0 rom  /mnt


[root@2021 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   18G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    1G  0 lvm  [SWAP]
sdb               8:16   0   50G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sr0              11:0    1  4.3G  0 rom  



#显示某块磁盘的分区信息  

[root@2021 ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x99a12600

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux


#1. 进行分区  创建分区  

[root@2021 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): 

Command action
   d   delete a partition						#删除分区 
   l   list known partition types				#显示分区文件系统类型 
   m   print this menu							#菜单  
   n   add a new partition						#创建一个新分区
   p   print the partition table				#打印分区表信息 
   q   quit without saving changes				#不保存退出
   w   write table to disk and exit				#保存退出 


Command (m for help): n    		#创建分区    		#主分区的编号是1-4   逻辑分区从5开始 
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended

Select (default p): p			#创建主分区
Partition number (1-4, default 1): 1		#主分区的编号
First sector (2048-209715199, default 2048): 			#扇区的起始位置
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): +10G		#扇区的结束位置   
Partition 1 of type Linux and of size 10 GiB is set

#查看分区

[root@2021 ~]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   18G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    1G  0 lvm  [SWAP]
sdb               8:16   0   50G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sr0              11:0    1  4.3G  0 rom  


#2. 创建文件系统    格式化

[root@2021 ~]# mkfs.xfs /dev/sdb1
mkfs.xfs: /dev/sdb1 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@2021 ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0


#3. 创建挂载点   

[root@mm~]# mkdir   /abc


#4.  挂载使用 

[root@mm~]# mount  /dev/sdb1   /abc
[root@mm~]# df -h |  grep  '/abc‘
/dev/sdb1        1G   39M   5G   1% /abc

#测试是否可用
[root@mm~]# dd   if=/dev/zero  of=/abc bs=100M  count=10
100+0 records in
100+0 records out
1048576000 bytes (1.0 GB) copied, 10.8088 s, 97.0 MB/s
[root@mm~]# df -h |  grep  '/abc'
/dev/sdb1        10G  1.1G  9.0G  11% /fdisk01

#5. 实现永久挂载 

###第一种方法
[root@mm~]# tail -1 /etc/fstab
/dev/sdb1				  /fdisk01                xfs     defaults        0 0
[root@mm~]# 

[root@mm~]# mount  -a		#重新挂载/etc/fstab文件中的挂载列表 

###第二种方法
[root@2021 ~]# cat /etc/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

###第三种方法
[root@2021 ~]# blkid 
/dev/sda1: UUID="fcce261d-0285-4492-85bf-18f3050d90c1" TYPE="xfs" 
/dev/sda2: UUID="DaBcBB-B9Jb-kP16-4u00-uTT1-IRHM-g8VZTu" TYPE="LVM2_member" 
/dev/sdb1: UUID="403856aa-cb22-49fa-96ea-24f6ee2e52e2" TYPE="xfs" 
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="6759ff83-5d16-4815-82d4-4a49111c10c7" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="12e4e503-8469-4330-9199-8f338b691c39" TYPE="swap"


#数据是跟着设备走的    目录只是一个挂载点   就是入口 

[root@mm~]# umount   /dev/sdb1
[root@mm~]# df -h
[root@2021 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 979M     0  979M   0% /dev
tmpfs                    991M     0  991M   0% /dev/shm
tmpfs                    991M  9.6M  981M   1% /run
tmpfs                    991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   16G  1.5G  92% /
/dev/sda1               1014M  163M  852M  17% /boot
tmpfs                    199M     0  199M   0% /run/user/0
[root@mm~]# mount  -a  (重新挂载)
[root@mm~]# mount  -l   (强制卸载)


### 3. Gdisk分区

```bash

[root@mm~]# yum  install  -y  gdisk (同上)

4. 磁盘的挂载方式

在Linux系统中,所有的设备必须挂载才能使用

mount #挂载的命令

选项:

-t		#指定文件系统     网络协议   nfs

-o		#指定挂载的参数 	

-l      #强制卸载

-a		#重新挂载/etc/fstab文件中的挂载列表 	
[root@mm~]# mount  -t  xfs  /dev/sdb1   /fdisk01/

[root@mm~]# mount  -o ro  /dev/sdb1  /fdisk01/
	
[root@2021 ~]# tail -3 /etc/fstab 
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=fcce261d-0285-4492-85bf-18f3050d90c1 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

#以空白字符为分隔符,分为6列:

第一列:		挂载的设备  挂载的地址  网络设备地址  

第二列:		挂载点  挂载的目录  空目录 

第三列:		文件系统的类型   xfs 7默认的  ext4 6默认的  nfs  gfs

第四列:		挂载的参数  defaults

第五列:	是否允许dump进行备份  
	0	#不备份
	
	1	#每天备份
	
	2	#不定期备份 

第六列: 是否通过fsck命令检查磁盘

	0	#不检查 
	
	1	#检查  检查顺序  先检查 /  
	
	2	#检查顺序 
### 5. Swap虚拟内存

```bash
Out of memory

OOM		#内存溢出   内存不足 


[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980         133        1625           9         221        1672
Swap:          1023          0         1023 
[root@mm~]# swapoff   -a
[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980         132        1627           9         220        1673
Swap:             0           0           0



虚拟内存 


#添加一个swap分区 


#创建一个1G的分区 

[root@mm~]# fdisk   /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.



[root@mm~]# partprobe		#通知内核,系统分区表发生变化 


#将这个分区变为swap分区

[root@mm~]# mkswap   /dev/sdb3
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=8a9c926b-de0d-4b49-bcb8-39a9c0b834a8


#把这个分区加入到swap

[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980          77        1819           0          84        1774
Swap:          2047          69        1978
[root@mm~]# swapon   -s
Filename				Type		Size	Used	Priority
/dev/sda2                              	partition	2097148	71168	-2
[root@mm~]# swapon   /dev/sdb3
[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980          78        1818           0          84        1773
Swap:          3071          69        3002
[root@mm~]# swapon   -s
Filename				Type		Size	Used	Priority
/dev/sda2                              	partition	2097148	70912	-2
/dev/sdb3                              	partition	1048572	0	-3


#移除swap

[root@mm~]# swapoff   /dev/sdb3
[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980          78        1818           0          84        1773
Swap:          2047          69        1978

#禁用swap
[root@mm~]# swapoff  -a
[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980         128        1759           9          92        1715
Swap:             0           0           0

#启用swap

[root@mm~]# swapon  -a
[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980         129        1758           9          92        1713
Swap:          2047           0        2047



#生成一个大文件  作为swap


[root@mm~]# dd  if=/dev/zero  of=/root/swap.txt  bs=100M  count=10
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 8.33166 s, 126 MB/s
[root@mm~]# ll
total 1024000
-rw-r--r-- 1 root root 1048576000 Aug  3 11:21 swap.txt
[root@mm~]# mkswap   swap.txt 
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=51e07b8a-971a-47ec-972e-36f8273ec3cd
[root@mm~]# ll
total 1024000
-rw-r--r-- 1 root root 1048576000 Aug  3 11:22 swap.txt
[root@mm~]# file   swap.txt 
swap.txt: Linux/i386 swap file (new style), version 1 (4K pages), size 255999 pages, no label, UUID=51e07b8a-971a-47ec-972e-36f8273ec3cd


[root@mm~]# chmod  600  swap.txt 


[root@mm~]# swapon  /root/swap.txt 

[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980         132         727           9        1120        1663
Swap:          3047           0        3047


[root@mm~]# swapoff   swap.txt 
[root@mm~]# free  -m
              total        used        free      shared  buff/cache   available
Mem:           1980         130         729           9        1120        1665
Swap:          2047           0        2047


6. RAID基本介绍

磁盘阵列技术 

做磁盘阵列的好处:

1. 获得更高的容量 

2. 获得更高的性能  

3. 让数据更安全  冗余  


如何做RAID:


软件实现   软RAID   不推荐    mdadm  


硬件RAID    RAID卡实现的      推荐    


做RAID什么时候做:

在装系统之前做


RAID的级别:

级别		别名      硬盘数量 		容量			性能				容错性

RAID0	条带卷		至少两块  		N*单块  		读写最快			 0

RAID1   镜像卷		只能两块       损失一半       写慢 读一般           50%

RAID5	校验卷 	至少3块		浪费一块       读写一般             N分之一 只能坏一块

RAID10	镜像阵列条带卷  至少4块    浪费一半        读写很快             50%  


7. LVM概述

逻辑卷管理   

PV	#物理卷    硬盘    分区   

VG	#卷组      多个硬盘 多个分区组成 

LV	#逻辑卷	分区   逻辑分区 

PE	#基本单元	  4MB     一个LV只能分配65534个PE  

8. 硬盘故障

[root@mm~]# fdisk   /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): 
Using default response p
Selected partition 4
First sector (127928320-209715199, default 127928320): 
Using default value 127928320
Last sector, +sectors or +size{K,M,G} (127928320-209715199, default 209715199): +2G
Partition 4 of type Linux and of size 2 GiB is set

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5b8d3e75

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568   125831167    52428800    5  Extended
/dev/sdb3       125831168   127928319     1048576   83  Linux
/dev/sdb4       127928320   132122623     2097152   83  Linux
/dev/sdb5        20975616    62918655    20971520   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@mm~]# 


#准备2G的分区 

[root@mm~]# dd  if=/dev/zero  of=/opt/test.log  bs=100M  count=21
dd: error writing ‘/opt/test.log’: No space left on device
21+0 records in
20+0 records out
2099183616 bytes (2.1 GB) copied, 3.34918 s, 627 MB/s

[root@mm~]# echo  "123" >> /opt/file.txt
-bash: echo: write error: No space left on device		#磁盘空间不足 


#解决:

检查磁盘空间

[root@mm~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        98G  6.4G   92G   7% /
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.6M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda1       497M  120M  378M  25% /boot
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        10G  1.1G  9.0G  11% /fdisk01
/dev/sdb4       2.0G  2.0G   20K 100% /opt


#找到这个大文件  确认好之后在删  

[root@mm~]# du  -sh  /opt/*  | grep  'G'
2.0G	/opt/test.log


一级一级往下找 


[root@mm~]# echo  "123"  >>/opt/test.txt
-bash: /opt/test.txt: No space left on device

[root@2021 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 979M     0  979M   0% /dev
tmpfs                    991M     0  991M   0% /dev/shm
tmpfs                    991M  9.6M  981M   1% /run
tmpfs                    991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G   16G  1.5G  92% /
/dev/sda1               1014M  163M  852M  17% /boot
tmpfs                    199M     0  199M   0% /run/user/0


[root@2021 ~]# df -i
Filesystem               Inodes  IUsed   IFree IUse% Mounted on
devtmpfs                 250508    402  250106    1% /dev
tmpfs                    253485      1  253484    1% /dev/shm
tmpfs                    253485    766  252719    1% /run
tmpfs                    253485     16  253469    1% /sys/fs/cgroup
/dev/mapper/centos-root 3235512 105031 3130481    4% /
/dev/sda1                524288    333  523955    1% /boot
tmpfs                    253485      1  253484    1% /run/user/0


[root@mm~]# find  /opt/ -type  d   -size  +2M  | xargs  ls -lhd
drwxr-xr-x 2 root root 3.8M Aug  3 12:27 /opt/test/test01
drwxr-xr-x 2 root root 3.8M Aug  3 12:27 /opt/test/test02

[root@mm~]# find  /opt/ -type  d   -size  +1M  | xargs  ls -lhd
drwxr-xr-x 2 root root 1.2M Aug  3 12:25 /opt/test/data01
drwxr-xr-x 2 root root 1.2M Aug  3 12:25 /opt/test/data02


[root@mm~]# ll /opt/test/data01  | wc -l
50001


#找到之后,确认在删除  


[root@mm~]# find  /opt/test/data01 -type  f  -delete


[root@mm~]# rm -f  /opt/test/test01/*
-bash: /usr/bin/rm: Argument list too long


[root@mm~]# ll  /opt/test/test01/ | wc -l
150001
posted @ 2021-03-30 00:25  博客之记  阅读(374)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3