耳朵(十):Linux——磁盘,raid、LVM

Linux磁盘管理:Linux下一切皆文件,而文件则存储在磁盘中。
Linux磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用三个命令为df、du和fdisk。
df:列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
fdisk:用于磁盘分区

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示

[root@localhost /]# df #显示系统内所有的文件系统
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18658304 1337100 17321204 8% /
devtmpfs 490016 0 490016 0% /dev
tmpfs 499848 6876 492972 2% /run
tmpfs 499848 0 499848 0% /sys/fs/cgroup

[root@localhost /]# df -h #以比较易读的方式展示
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
[root@localhost /]# df -Th #显示文件系统类型
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 18G 1.3G 17G 8% /
devtmpfs devtmpfs 479M 0 479M 0% /dev
tmpfs tmpfs 489M 6.8M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup

[root@localhost ~]# df -h /etc/ #将/etc所在的磁盘以G的方式表示出来
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 8% /

du
Linux du命令也是查看使用空间的,但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;

[root@localhost ~]# du #不加任何参数,系统会默认输出当前目录下的文件或目录所占空间。
0 ./findresults/bbb
12 ./findresults
0 ./mu
0 ./app/myquota
0 ./app
64 .

[root@localhost ~]# du -s #读出当前目录下的文件或目录所占磁盘空间总数
64 .
[root@localhost ~]# du -S #不包括子目录下的总计
0 ./findresults/bbb
12 ./findresults
0 ./mu
0 ./app/myquota
0 ./app
52 .

fdisk
fdisk 是 Linux 的磁盘分区表操作工具。

[root@localhost ~]# fdisk -l #列出系统磁盘分区信息,比lsblk命令更加详细,但没有其直观。

Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000de9a5

磁盘分区:[root@localhost ~]# lsblk #查看系统磁盘分区信息
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 2G 0 part /boot
├─sda2 8:2 0 200M 0 part [SWAP]
└─sda3 8:3 0 17.8G 0 part /
sdb 8:16 0 1G 0 disk
sdc 8:32 0 1G 0 disk
└─storage-vo 253:0 0 152M 0 lvm /lvm
sdd 8:48 0 1G 0 disk
sde 8:64 0 1G 0 disk
sr0 11:0 1 4.2G 0 rom

[root@localhost ~]# fdisk /dev/sdb #对/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.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xfe661663.

Command (m for help): m #m参数帮助查看分区内的一些操作
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition #比如:加入一个新的分区
o create a new empty DOS partition table
p print the partition table #比如:p输出分区表
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free) #主分区
e extended #扩展分区
Select (default p):
Partition number (1-4, default 1): 1 #分区编号
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): #分区大小 ,不可超过磁盘大小
Using default value 2097151
Partition 1 of type Extended and of size 1023 MiB is set
Command (m for help): w #保存退出 / 若按q参数,则是停止退出,则之前操作统一退出
The partition table has been altered!
Calling ioctl() to re-read partition table.

[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 2G 0 part /boot
├─sda2 8:2 0 200M 0 part [SWAP]
└─sda3 8:3 0 17.8G 0 part /
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 1K 0 part #再次查看创建了一个sdb2分区

格式化:磁盘创建好之后需要进行格式化统一格式。
mkf命令

[root@localhost ~]# mkfs[tab][tab] #系统所支持的所有文件格式
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat

[root@localhost ~]# mkfs.ext4 /dev/sdc #ext4格式进行格式化
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdc is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

挂载mount
取消挂载umount
-t:指定文件系统类型
-a:挂载所有(/etc/fstab)
-l:查看所有挂载

[root@localhost ~]# mount /dev/sdc /dddir/ #将sdc挂载到/dddir目录
[root@localhost ~]# df -h #查看
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sdb2 3.0G 34M 3.0G 2% /app
/dev/sda1 2.0G 119M 1.9G 6% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdc 4.8G 20M 4.6G 1% /dddir #挂载成功
[root@localhost ~]# umount /dddir/ #取消挂载
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sdb2 3.0G 34M 3.0G 2% /app
/dev/sda1 2.0G 119M 1.9G 6% /boot
tmpfs 98M 0 98M 0% /run/user/0 #/dddir挂载点以取消

raid
系统进行交互时会产生大量的io操作,不免会损坏系统所以基于此产生了raid管理

raid:即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。但这仅仅是名称的变化,实质内容没有改变。

RAID分类:硬RAID,性能较高。他们采用 PCI Express 卡物理地提供有专用的 RAID 控制器。它不会使用主 机资源。他们有 NVRAM 用于缓存的读取和写入。缓存用于 RAID 重建时,即使出现电源故障,它会使用后备 的电池电源保持缓存
软RAID:性能较低,因为其使用主机的资源。 需要加载 RAID 软件以从软件 RAID 卷中读取数据。在加载 RAID 软件前,操作系统需要引导起来才能加载 RAID 软件。在软件 RAID 中无需物理硬件。零成本投资
RAID等级:
1.RAID0
不含校验与冗余的条带存储,无备份
读写性能有提升,冗余能力无,空间利用率100%,至少需要1块磁盘
2.RAID1
不含校验的镜像存储 ,完整备份
读性能有提升,写性能下降,冗余能力有,空间利用率50%,至少需要2块磁盘
3、RAID5
数据块级别的分布式校验条带存储 ,性能与数据备份的均衡考虑
读写性能有提升,冗余能力有,空间利用率(n-1)/n,至少需要3块磁盘
4、RAID10
条带加镜像存储
读写性能提升冗余能力有,空间利用率50%,至少需要4块盘
5、RAID01
镜像加条带存储
命令参数:mdadm
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏(标记)
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
现在以笔者的系统进行创建raid0

[root@localhost ~]# mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sdc /dev/sdd
mdadm: chunk size defaults to 512K
mdadm: /dev/sdc appears to contain an ext2fs file system
size=5242880K mtime=Thu Oct 25 08:29:19 2018
mdadm: /dev/sdd appears to contain an ext2fs file system
size=5242880K mtime=Wed Dec 31 19:00:00 1969
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

[root@localhost ~]# mkfs.ext4 /dev/md0 #然后对md0进行ex4格式化
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2618880 blocks
130944 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

[root@localhost ~]# mdadm -D /dev/md0 #查看raid
/dev/md0:
Version : 1.2
Creation Time : Thu Oct 25 08:48:36 2018
Raid Level : raid0
Array Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

   Update Time : Thu Oct 25 08:48:36 2018
         State : clean 
Active Devices : 2

Working Devices : 2
Failed Devices : 0
Spare Devices : 0

    Chunk Size : 512K

Consistency Policy : none

          Name : localhost.localdomain:0  (local to host localhost.localdomain)
          UUID : 61f32279:a678d4f1:d4a1eb74:dc1b65bd
        Events : 0

Number   Major   Minor   RaidDevice State
   0       8       32        0      active sync   /dev/sdc              
   1       8       48        1      active sync   /dev/sdd                  #raid0里有sdc和sdd两个文件系统

[root@localhost ~]# mount /dev/md0 /dddir/ #挂载
[root@localhost ~]# df -h #查看挂载
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sdb2 3.0G 34M 3.0G 2% /app
/dev/sda1 2.0G 119M 1.9G 6% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/md0 9.8G 37M 9.2G 1% /dddir #挂载成功

[root@localhost ~]# umount /dddir/ #取消挂载
[root@localhost ~]# mdadm -S /dev/md0 #停止raid阵列
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm -D /dev/md0 #查看显示报错,证明阵列以停止
mdadm: cannot open /dev/md0: No such file or directory

LVM的管理与使用

硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署 为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了,此时需要使用LVM LVM(Logical volume Manager)逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上 层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑 卷。作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性

   PV(Physical Volume)- 物理卷,物理卷在逻辑卷管理中处于底层,它可以是实际物理硬盘上的分区,也 可以是整个物理硬盘,也可以是raid设备 
   VG(Volumne Group)- 卷组,卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之 后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组
   LV(Logical Volume)- 逻辑卷 ,逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻 辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个 卷组 
   PE(physical extent),每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是 可以被LVM寻址的小单元。PE的大小是可配置的,默认为4MB

功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
缩小 vgreduce lvreduce

[root@localhost ~]# pvcreate /dev/sdc /dev/sdd #创建物理卷
WARNING: ext4 signature detected on /dev/sdc at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdc.
WARNING: ext4 signature detected on /dev/sdd at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdd.
Physical volume “/dev/sdc” successfully created.
Physical volume “/dev/sdd” successfully created.

[root@localhost ~]# vgcreate storagr /dev/sdc /dev/sdd #创建卷组把物理卷加入卷组
Volume group “storagr” successfully created

[root@localhost ~]# lvcreate -n vo -L 150m storagr #创建逻辑卷
Rounding up size to full physical extent 152.00 MiB
Logical volume “vo” created.

[root@localhost /]# mkfs.ext4 /dev/storagr/vo #格式化
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
38912 inodes, 155648 blocks
7782 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
19 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost /]# mount /dev/storagr/vo /lvm/ #挂载

[root@localhost /]# df -h #查看挂载
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 8% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sdb2 3.0G 34M 3.0G 2% /app
/dev/sda1 2.0G 119M 1.9G 6% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/storagr-vo 144M 1.6M 132M 2% /lvm #挂载成功
[root@localhost /]# lvdisplay #查看逻辑卷
— Logical volume —
LV Path /dev/storagr/vo
LV Name vo
VG Name storagr
LV UUID yO9q3e-hbzd-RAII-WpCr-o5PU-lJp2-FWMTv6
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-10-25 09:14:10 -0400
LV Status available

open 1

LV Size 152.00 MiB
Current LE 38
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 8192
    Block device 253:0

[root@localhost /]# umount /lvm/ #取消挂载
[root@localhost /]# lvremove /dev/storagr/vo #删除逻辑卷组
Do you really want to remove active logical volume storagr/vo? [y/n]: y
Logical volume “vo” successfully removed
[root@localhost /]# vgremove /dev/storagr #删除卷组
Volume group “storagr” successfully removed
[root@localhost /]# pvremove /dev/sdc /dev/sdd #删除物理卷
Labels on physical volume “/dev/sdc” successfully wiped.
Labels on physical volume “/dev/sdd” successfully wiped.
[root@localhost /]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值