目录
一、df命令
二、du命令
三、磁盘分区
四、磁盘格式化
五、磁盘挂载
六、手动增加swap空间
七、lvm讲解
八、Parted
九、dd命令
十、raid
十一、存储基础知识
一、df 命令
df命令用来显示系统磁盘分区使用情况
常用选项
-h,以人类友好的方式显示大小
//不带参数,默认显示全部分区,大小以kbytes为单位
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18658304 1754500 16903804 10% /
devtmpfs 490024 0 490024 0% /dev
tmpfs 499860 0 499860 0% /dev/shm
tmpfs 499860 6756 493104 2% /run
tmpfs 499860 0 499860 0% /sys/fs/cgroup
/dev/sda1 201380 99356 102024 50% /boot
tmpfs 99972 0 99972 0% /run/user/0
//加上-h参数以后,分区大小的单位为K,M,G等人类易读的方式显示
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.7G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.6M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
//tmpfs,临时文件系统,是一种基于内存的文件系统。
//df命令不显示swap分区大小使用情况,如需查看,可使用free命令
[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 976M 139M 678M 6.6M 158M 665M
Swap: 2.0G 0B 2.0G
-i,显示i节点信息
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9334272 59933 9274339 1% /
devtmpfs 122506 337 122169 1% /dev
tmpfs 124965 1 124964 1% /dev/shm
tmpfs 124965 416 124549 1% /run
tmpfs 124965 16 124949 1% /sys/fs/cgroup
/dev/sda1 102400 327 102073 1% /boot
tmpfs 124965 1 124964 1% /run/user/0
//有时候分区还有空间,但是就是写入不了数据,需要考虑inode是否已经用完这种情况。
-m,以m为单位显示磁盘空间大小
[root@localhost ~]# df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/sda3 18221 1713 16509 10% /
devtmpfs 479 0 479 0% /dev
tmpfs 489 0 489 0% /dev/shm
tmpfs 489 7 482 2% /run
tmpfs 489 0 489 0% /sys/fs/cgroup
/dev/sda1 197 98 100 50% /boot
tmpfs 98 0 98 0% /run/user/0
二、du命令
可以用来显示文件的大小
常见用法
//不带参数以字节为单位显示当前目录下文件及目录大小
[root@localhost ~]# du
0 ./.pki/nssdb
0 ./.pki
4 ./.config/htop
4 ./.config
4 ./.ssh
8 ./demo/stor1
4 ./demo/stor2/stor1
4 ./demo/stor2
0 ./demo/fd3/fd1/fd1
0 ./demo/fd3/fd1
8 ./demo/fd3
34940 ./demo/fd1
0 ./demo/extra
3400 ./demo/tt
0 ./demo/music
38364 ./demo
243228 .
//带上具体的文件名,则以字节为单位显示文件大小
[root@localhost ~]# du /etc/passwd
4 /etc/passwd
//-sh以人类易读的方式显示文件大小,这是du命令最常用的方式
[root@localhost ~]# du -sh /etc/passwd
4.0K /etc/passwd
三、磁盘分区
通过使用fdisk命令来划分磁盘分区,演示过程如下:
1.在虚拟机增加一块20G的
2.检查虚拟机是否识别到新添加的硬盘
[root@localhost ~]# fdisk -l
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: 0x000e777e
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 41943039 18668544 83 Linux
3.执行下述命令使系统重新扫描新添加的硬件,再次查看是否识别到新硬盘。
[root@localhost ~]# cd /sys/class/scsi_host/
[root@localhost scsi_host]# ll
total 0
lrwxrwxrwx. 1 root root 0 May 20 20:52 host0 -> ../../devices/pci0000:00/0000:00:07.1/ata1/host0/scsi_host/host0/
lrwxrwxrwx. 1 root root 0 May 20 20:52 host1 -> ../../devices/pci0000:00/0000:00:07.1/ata2/host1/scsi_host/host1/
lrwxrwxrwx. 1 root root 0 May 20 20:52 host2 -> ../../devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/
[root@localhost scsi_host]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost scsi_host]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost scsi_host]# echo "- - -" > /sys/class/scsi_host/host2/scan
//再次检查是否识别是否发现新硬盘
[root@localhost scsi_host]# fdisk -l
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: 0x000e777e
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 4605951 2097152 82 Linux swap / Solaris
/dev/sda3 4605952 41943039 18668544 83 Linux
//新硬盘的设备名为/dev/sdb
Disk /dev/sdb: 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
4.对新硬盘进行分区操作
[root@localhost scsi_host]# 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.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xfc58ea93.
//m列出帮助命令
Command (m for help): 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
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)
//常用命令选项,n新建分区,p打印分区表,d删除分区,t更新分区系统id,w保存
//新建一个2GB的分区
//Command (m for help): n1^H^H^H^H,如果输错,退格键无法删除,可ctrl+退格键删除
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
//这里的 p 是主分区的意思,e是扩展分区。MBR类型的分区表中,最多允许4个主分区,
//主分区与扩展分区的和小于等于4个
//如果已经分了4个主分区,磁盘还有空间未分,则剩余空间无法利用。
//扩展分区可以是第一个分区,逻辑分区从5开始,并且是连续的,主分区可以不连续
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set
//打印分区表,显示已经建立了主分区/dev/sdb1
Command (m for help): p
Disk /dev/sdb: 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: 0xfc58ea93
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
//更新分区系统id
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2):
First sector (4196352-41943039, default 4196352):
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-41943039, default 41943039): +2G
Partition 2 of type Linux and of size 2 GiB is set
Command (m for help): t
Partition number (1,2, default 2):
//L可以显示所有的系统id代码
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p
Disk /dev/sdb: 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: 0xbd3cbf9d
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
//删除分区
Command (m for help): p
Disk /dev/sdb: 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: 0xbd3cbf9d
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
/dev/sdb3 8390656 41943039 16776192 5 Extended
/dev/sdb5 8392704 12587007 2097152 83 Linux
/dev/sdb6 12589056 20977663 4194304 83 Linux
/dev/sdb7 20979712 23076863 1048576 83 Linux
Command (m for help): d
Partition number (1-3,5-7, default 7): 6
Partition 6 is deleted
Command (m for help): p
Disk /dev/sdb: 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: 0xbd3cbf9d
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
/dev/sdb3 8390656 41943039 16776192 5 Extended
/dev/sdb5 8392704 12587007 2097152 83 Linux
/dev/sdb6 20979712 23076863 1048576 83 Linux
//原来的分区/dev/sdb7变为/dev/sdb6,但是所在磁盘的位置不变。参见分区起始扇区的位置
//保存对分区的更改
//如果不输入w保存,直接输入q退出,则对磁盘做的更改不会生效
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
四、磁盘格式化
磁盘分好区以后,还需要进行格式化以后才能进行使用
Linux支持的文件系统很丰富,如下:
[root@localhost scsi_host]# cat /etc/filesystems
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*
//如需支持window的NTFS,可通过安装ntfs-3g来实现
mke2fs支持将分区格式化为ext2,ext3.ext4,不支持将分区格式为xfs文件系统
//-t可以指定要格式化的文件系统类型,可以是ext2,ext3,ext4
[root@localhost scsi_host]# mke2fs -t ext4 /dev/sdb6
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
//验证格式化后的分区为ext4
[root@localhost scsi_host]# lsblk -f | grep sdb6
└─sdb6 ext4 5285e8ef-f5b5-4cd8-bcef-3d78d6f6629e
//-b可以指定磁盘存储的块大小
//确定分区的默认块大小
//默认块大小为4K
[root@localhost demo]# du -h essay1
0 essay1
[root@localhost demo]# echo 1 > essay1
[root@localhost demo]# du -h essay1
4.0K essay1
//指定分区的块大小
[root@localhost demo]# mke2fs -t ext4 -b 2048 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=269484032
64 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
//-m指定保留给超级用户的空间
[root@localhost demo]# mke2fs -m 2 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
10485 blocks (2.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
//-i一个inode对应的容量
[root@localhost demo]# mke2fs -b 2048 -i 4096 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=537919488
64 block groups
16384 blocks per group, 16384 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
Allocating group tables: done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
格式化为xfs分区需要使用mkfs.xfs, mkfs.ext2,mkfs.ext3,mkfs.ext4也可以实现将分区格式化为相对应的文件系统。
//将/dev/sdb1格式化为xfs文件系统格式
[root@localhost demo]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, 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
磁盘坏道的修复
fsck/e2fsck -a 分区名,参考 https://www.2cto.com/os/201204/126370.html
避免数据丢失的几个策略
1)做raid1、raid10、raid5、raid6
2)做好数据的备份策略
五、挂载
格式化好的分区,需要挂载到系统文件目录树,挂载点就是该分区所在的目录。
[root@localhost demo]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
//挂载/dev/sdb1分区到/mnt
[root@localhost demo]# mount /dev/sdb1 /mnt/
[root@localhost demo]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 2.0G 33M 2.0G 2% /mnt
//卸载挂载的分区
[root@localhost demo]# umount /mnt/
[root@localhost demo]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
//如果工作目录在要卸载的分区,可能无法正常卸载,可使用-l选项解决
[root@localhost demo]# cd /mnt/
[root@localhost mnt]# pwd
/mnt
[root@localhost mnt]# umount /mnt/
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
//解决方法1,将工作目录切换到其他分区
[root@localhost mnt]# cd
[root@localhost ~]# umount /mnt/
//解决方法2,加上-l选项
[root@localhost mnt]# pwd
/mnt
[root@localhost mnt]# umount -l /mnt
[root@localhost mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
mount命令的常用选项
-a 按/etc/fstab的内容将所有相关的磁盘都挂载上来
[root@localhost mnt]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon May 7 03:54:51 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=f31ae553-a4e6-437d-986c-a90738ca8583 / xfs defaults 0 0
UUID=9cd1151e-3afd-4d1b-9b20-1fc6c19441cb /boot xfs defaults 0 0
UUID=c17e0848-125f-4d68-b59a-381bf40baf24 swap swap defaults 0 0
UUID=fded654f-4d18-4967-b4ec-9c3fb2a27f7b /mnt/fd1 ext4 defaults 0 0
UUID=5285e8ef-f5b5-4cd8-bcef-3d78d6f6629e /mnt/fd2 ext4 defaults 0 0
//当前/mnt/fd1, /mnt/fd2都没有挂载,但是在/etc/fstab文件中有记录
[root@localhost mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@localhost mnt]# mount -a
[root@localhost mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.8G 17G 10% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb5 2.0G 6.0M 1.8G 1% /mnt/fd1
/dev/sdb6 976M 2.6M 907M 1% /mnt/fd2
-t 指明挂载的文件系统类型,默认是不用指明,系统会自动识别,但是有些文件系统可能需要手工指定
//支持的文件系统类型包括:autofs, cifs, debugfs, ext, ext2, ext3, ext4, msdos, ncpfs, nfs, nfs4, ntfs, 具体取决于内核
//挂载iso镜像文件
[root@localhost demo]# mount -t iso9660 -o loop ikuai.iso /media/iso/
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost demo]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.9G 16G 11% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb5 2.0G 6.0M 1.8G 1% /mnt/fd1
/dev/sdb6 976M 2.6M 907M 1% /mnt/fd2
/dev/loop0 29M 29M 0 100% /media/iso
-o 后面可以接一些挂载时,额外的参数,如帐号,密码,读写权限
//defaults 默认包括rw,suid,dev,exec,auto,nouser,和async
//rw 读写权限, suid 允许设置suid权限,dev 在文件系统中翻译字符设备或块设备
//exec允许二进制文件执行,auto 可以通过mount -a挂载,nouser 禁止普通用户挂载目录 async异步方式同步文件内容到磁盘
//remount,重新挂载,在系统出错,或重新更新参数时,很有用
[root@localhost demo]# umount /mnt/fd1
[root@localhost demo]# mount -o ro /dev/sdb5 /mnt/fd1
[root@localhost demo]# touch /mnt/fd1/1.txt
touch: cannot touch ‘/mnt/fd1/1.txt’: Read-only file system
[root@localhost demo]# mount -o remount /dev/sdb5
[root@localhost demo]# touch /mnt/fd1/1.txt
自动挂载配置文件/etc/fstab
[root@localhost demo]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon May 7 03:54:51 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=f31ae553-a4e6-437d-986c-a90738ca8583 / xfs defaults 0 0
UUID=9cd1151e-3afd-4d1b-9b20-1fc6c19441cb /boot xfs defaults 0 0
UUID=c17e0848-125f-4d68-b59a-381bf40baf24 swap swap defaults 0 0
UUID=fded654f-4d18-4967-b4ec-9c3fb2a27f7b /mnt/fd1 ext4 defaults 0 0
UUID=5285e8ef-f5b5-4cd8-bcef-3d78d6f6629e /mnt/fd2 ext4 defaults 0 0
//格式: UUID号或者设备名 挂载点 分区格式 选项 备份 磁盘检查
//以挂载/dev/sdb1为例
//查看/dev/sdb1的uuid
[root@localhost demo]# blkid
/dev/sda1: UUID="9cd1151e-3afd-4d1b-9b20-1fc6c19441cb" TYPE="xfs"
/dev/sda2: UUID="c17e0848-125f-4d68-b59a-381bf40baf24" TYPE="swap"
/dev/sda3: UUID="f31ae553-a4e6-437d-986c-a90738ca8583" TYPE="xfs"
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdb1: UUID="ed41b0f0-e04a-4b05-ac51-16a8857912d7" TYPE="xfs"
/dev/sdb5: UUID="fded654f-4d18-4967-b4ec-9c3fb2a27f7b" TYPE="ext4"
/dev/sdb6: UUID="5285e8ef-f5b5-4cd8-bcef-3d78d6f6629e" TYPE="ext4"
//创建挂载点
[root@localhost demo]# mkdir /mnt/fd3
[root@localhost demo]# ls -ld /mnt/fd3
drwxr-xr-x. 2 root root 6 May 21 04:35 /mnt/fd3/
//分区格式为xfs,选项为默认,不备份,不检查
//手动挂载验证
[root@localhost demo]# mount UUID="ed41b0f0-e04a-4b05-ac51-16a8857912d7" /mnt/fd3
[root@localhost demo]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.9G 16G 11% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb5 2.0G 6.0M 1.8G 1% /mnt/fd1
/dev/sdb6 976M 2.6M 907M 1% /mnt/fd2
/dev/sdb1 2.0G 33M 2.0G 2% /mnt/fd3
//将配置写入/etc/fstab,保存配置
[root@localhost demo]# vim /etc/fstab
UUID=ed41b0f0-e04a-4b05-ac51-16a8857912d7 /mnt/fd3 xfs defaults 0 0
//验证
[root@localhost demo]# umount /dev/sdb1
[root@localhost demo]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18658304 1989556 16668748 11% /
devtmpfs 490024 0 490024 0% /dev
tmpfs 499860 0 499860 0% /dev/shm
tmpfs 499860 6792 493068 2% /run
tmpfs 499860 0 499860 0% /sys/fs/cgroup
/dev/sda1 201380 99356 102024 50% /boot
tmpfs 99972 0 99972 0% /run/user/0
/dev/sdb5 1998672 6144 1871288 1% /mnt/fd1
/dev/sdb6 999320 2564 927944 1% /mnt/fd2
[root@localhost demo]# mount -a
[root@localhost demo]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.9G 16G 11% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb5 2.0G 6.0M 1.8G 1% /mnt/fd1
/dev/sdb6 976M 2.6M 907M 1% /mnt/fd2
/dev/sdb1 2.0G 33M 2.0G 2% /mnt/fd3
//修改/etc/fstab文件后强烈建议用mount -a测试,否则如果配置有问题,可能导致无法启动。
六、手动增加swap空间
1.查看当前swap分区的大小
[root@localhost demo]# free -h
total used free shared buff/cache available
Mem: 976M 149M 347M 6.6M 479M 591M
Swap: 2.0G 0B 2.0G
2.生成一个空文件
//生成一个100M的空文件
[root@localhost demo]# dd if=/dev/zero of=new_swap bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.20227 s, 47.6 MB/s
[root@localhost demo]# ls -l new_swap
-rw-r--r--. 1 root root 104857600 May 21 02:44 new_swap
3.将该文件转为swap文件格式
[root@localhost demo]# mkswap new_swap
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=151946dd-46a1-441f-85fd-b5ec98ef3294
3.将该文件挂载为swap分区
[root@localhost demo]# swapon /root/demo/new_swap
swapon: /root/demo/new_swap: insecure permissions 0644, 0600 suggested.
//查看当前swap分区大小,已经增加了100M
[root@localhost demo]# free -h
total used free shared buff/cache available
Mem: 976M 149M 346M 6.6M 479M 591M
Swap: 2.1G 0B 2.1G
//如需卸载该swap分,可执行swapoff /root/demo/new_swap即可
//如需开机自动加载新增的swap分,修改/etc/fstab文件
七、LVM
LVM是Logical Volume Manager的简称,意为逻辑卷管理。是Linux系统中进行磁盘管理的一种机制,它可以将多个分区整合到一起,使这些分区看起来就一个硬盘。通过LVM可以弹性的调整系统分区的容易。
LVM的相关概念
PV:即物理卷。PV是指硬盘分区或从逻辑上看起来和硬盘分区类似的设备,是LVM的基本存储逻辑块。
VG:即卷组。它是由一个或多个物理卷组成的
LV:即逻辑卷,对于LVM而言,逻辑卷类似于非LVM系统中的硬盘分区。
PE:是Physical Extend的简称。是物理卷的基本单元,是可以被寻址的最小单元。物理卷是由同等大小的PE组成。
LVM配置(以3个分区组成的LVM为例,每分区为3GB)
1.准备磁盘分区
//对硬盘进行分区,
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +3G
Partition 1 of type Linux and of size 3 GiB is set
//并将分区的系统id改为8e
Command (m for help): t
Partition number (1-3, default 3): 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
//依次建立三个分区并修改分区的系统id
Command (m for help): p
Disk /dev/sdb: 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: 0xd2f9c4bf
Device Boot Start End Blocks Id System
/dev/sdb1 2048 6293503 3145728 8e Linux LVM
/dev/sdb2 6293504 12584959 3145728 8e Linux LVM
/dev/sdb3 12584960 18876415 3145728 8e Linux LVM
2.PV阶段
//检查系统中有无PV(如无pvscan命令,yum -y install lvm2-2.02.177-4.el7.x86_64)
[root@bogon scsi_host]# pvscan
No matching physical volumes found
//创建物理卷
[root@bogon scsi_host]# pvcreate /dev/sdb{1,2,3}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
//查看PV状态
[root@bogon scsi_host]# pvscan
[root@bogon scsi_host]# pvdisplay
"/dev/sdb1" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID yc1XjR-923R-qkVu-Qq1t-3vXW-3gqQ-GHbAF0
"/dev/sdb2" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID i3VapW-8nY5-npvy-tetM-tx6Y-4KSj-wF31nJ
"/dev/sdb3" is a new physical volume of "3.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size 3.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID OGUix7-S1Fy-iIDF-1x1Z-clU7-MYZV-PEo4ZS
3.VG阶段
//查看系统中是否存在VG
[root@bogon scsi_host]# vgscan
Reading volume groups from cache.
//将/dev/sdb1,/dev/sdb2创建为一个VG
[root@bogon scsi_host]# vgcreate lvm_test /dev/sdb1 /dev/sdb2
Volume group "lvm_test" successfully created
//查看VG状态
[root@bogon scsi_host]# vgdisplay
--- Volume group ---
VG Name lvm_test
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 5.99 GiB
PE Size 4.00 MiB
Total PE 1534
Alloc PE / Size 0 / 0
Free PE / Size 1534 / 5.99 GiB
VG UUID QeVKgh-PIrY-HrmX-GY9G-25oF-r9E4-n5Mbdk
//查看PV状态
[root@bogon scsi_host]# pvscan
PV /dev/sdb1 VG lvm_test lvm2 [<3.00 GiB / <3.00 GiB free]
PV /dev/sdb2 VG lvm_test lvm2 [<3.00 GiB / <3.00 GiB free]
PV /dev/sdb3 lvm2 [3.00 GiB]
Total: 3 [8.99 GiB] / in use: 2 [5.99 GiB] / in no VG: 1 [3.00 GiB]
//如需扩展这个VG容易,将/dev/sdb3添加入这个VG,操作如下
[root@bogon scsi_host]# vgextend lvm_test /dev/sdb3
Volume group "lvm_test" successfully extended
[root@bogon scsi_host]# vgdisplay
--- Volume group ---
VG Name lvm_test
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <8.99 GiB
PE Size 4.00 MiB
Total PE 2301
Alloc PE / Size 0 / 0
Free PE / Size 2301 / <8.99 GiB
VG UUID QeVKgh-PIrY-HrmX-GY9G-25oF-r9E4-n5Mbdk
4.LV阶段
//新建逻辑卷lvm,将刚刚建立的整个"lvm_test"磁盘都分配给"lvm"
[root@bogon scsi_host]# lvcreate -l 2301 -n lvm lvm_test
Logical volume "lvm" created.
//查看lv状态
[root@bogon scsi_host]# lvdisplay
--- Logical volume ---
LV Path /dev/lvm_test/lvm
LV Name lvm
VG Name lvm_test
LV UUID G2mlWA-fnlc-ClsK-wq5X-2Pfc-qvPB-1srSk7
LV Write Access read/write
LV Creation host, time bogon, 2018-05-21 23:45:54 +0800
LV Status available
# open 0
LV Size <8.99 GiB
Current LE 2301
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
5.文件系统阶段
//格式化分区为ext4格式
[root@bogon scsi_host]# mkfs.ext4 /dev/lvm_test/lvm
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
589824 inodes, 2356224 blocks
117811 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
72 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
6.挂载该分区
[root@bogon scsi_host]# mkdir /lvm
[root@bogon scsi_host]# mount /dev/lvm_test/lvm /lvm/
[root@bogon scsi_host]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 14G 1.6G 13G 12% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.6M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 187M 97M 91M 52% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/lvm_test-lvm 8.8G 37M 8.3G 1% /lvm
7.LVM容量的放大与缩小(ext4分区格式)
//放大LVM容量
//增加新分区/dev/sdb4,并创建为PV
[root@bogon ~]# pvcreate /dev/sdb4
Physical volume "/dev/sdb4" successfully created.
//查看PV状态
[root@bogon ~]# pvscan
PV /dev/sdb1 VG lvm_test lvm2 [<3.00 GiB / 0 free]
PV /dev/sdb2 VG lvm_test lvm2 [<3.00 GiB / 0 free]
PV /dev/sdb3 VG lvm_test lvm2 [<3.00 GiB / 0 free]
PV /dev/sdb4 lvm2 [5.00 GiB]
Total: 4 [<13.99 GiB] / in use: 3 [<8.99 GiB] / in no VG: 1 [5.00 GiB]
//利用vgextend扩展VG
[root@bogon ~]# vgextend lvm_test /dev/sdb4
Volume group "lvm_test" successfully extended
[root@bogon ~]# vgdisplay
--- Volume group ---
VG Name lvm_test
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 4
Act PV 4
VG Size 13.98 GiB
PE Size 4.00 MiB
Total PE 3580
Alloc PE / Size 2301 / <8.99 GiB
Free PE / Size 1279 / <5.00 GiB
VG UUID QeVKgh-PIrY-HrmX-GY9G-25oF-r9E4-n5Mbdk
//利用lvresize放大LV
[root@bogon ~]# lvresize -l +1279 /dev/lvm_test/lvm
Size of logical volume lvm_test/lvm changed from <8.99 GiB (2301 extents) to 13.98 GiB (3580 extents).
Logical volume lvm_test/lvm successfully resized.
[root@bogon ~]# lvdisplay
--- Logical volume ---
LV Path /dev/lvm_test/lvm
LV Name lvm
VG Name lvm_test
LV UUID G2mlWA-fnlc-ClsK-wq5X-2Pfc-qvPB-1srSk7
LV Write Access read/write
LV Creation host, time bogon, 2018-05-21 23:45:54 +0800
LV Status available
# open 0
LV Size 13.98 GiB
Current LE 3580
Segments 4
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@bogon ~]# e2fsck -f /dev/lvm_test/lvm
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/lvm_test/lvm: 11/589824 files (0.0% non-contiguous), 79025/2356224 blocks
[root@bogon ~]# resize2fs /dev/lvm_test/lvm
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/lvm_test/lvm to 3665920 (4k) blocks.
The filesystem on /dev/lvm_test/lvm is now 3665920 blocks long.
//缩小LVM容量
//查看/dev/sdb3的大小
[root@bogon ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name lvm_test
PV Size 3.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 767
Free PE 0
Allocated PE 767
PV UUID yc1XjR-923R-qkVu-Qq1t-3vXW-3gqQ-GHbAF0
--- Physical volume ---
PV Name /dev/sdb2
VG Name lvm_test
PV Size 3.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 767
Free PE 0
Allocated PE 767
PV UUID i3VapW-8nY5-npvy-tetM-tx6Y-4KSj-wF31nJ
--- Physical volume ---
PV Name /dev/sdb3
VG Name lvm_test
PV Size 3.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 767
Free PE 0
Allocated PE 767
PV UUID OGUix7-S1Fy-iIDF-1x1Z-clU7-MYZV-PEo4ZS
--- Physical volume ---
PV Name /dev/sdb4
VG Name lvm_test
PV Size 5.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1279
Free PE 0
Allocated PE 1279
PV UUID afA2IN-HkJs-jEfX-0aot-nnXJ-ka2b-M8CF75
//利用resize2fs减小文件系统容易
//如分区已挂载,需要先卸载
[root@bogon ~]# e2fsck -f /dev/lvm_test/lvm
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/lvm_test/lvm: 11/917504 files (0.0% non-contiguous), 100612/3665920 blocks
[root@bogon ~]# resize2fs /dev/lvm_test/lvm 11G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/lvm_test/lvm to 2883584 (4k) blocks.
The filesystem on /dev/lvm_test/lvm is now 2883584 blocks long.
[root@bogon ~]# umount /dev/lvm_test/lvm
[root@bogon ~]# lvresize -l -767 /dev/lvm_test/lvm
WARNING: Reducing active and open logical volume to <10.99 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvm_test/lvm? [y/n]: y
Size of logical volume lvm_test/lvm changed from 13.98 GiB (3580 extents) to <10.99 GiB (2813 extents).
Logical volume lvm_test/lvm successfully resized.
[root@bogon ~]# vgreduce lvm_test /dev/sdb3
Removed "/dev/sdb3" from volume group "lvm_test"
[root@bogon ~]# pvscan
PV /dev/sdb1 VG lvm_test lvm2 [<3.00 GiB / 0 free]
PV /dev/sdb2 VG lvm_test lvm2 [<3.00 GiB / 0 free]
PV /dev/sdb4 VG lvm_test lvm2 [<5.00 GiB / 0 free]
PV /dev/sdb3 lvm2 [3.00 GiB]
Total: 4 [<13.99 GiB] / in use: 3 [<10.99 GiB] / in no VG: 1 [3.00 GiB]
[root@bogon ~]# pvremove /dev/sdb3
Labels on physical volume "/dev/sdb3" successfully wiped.
8.lvm分区调整(xfs)
[root@bogon ~]# lvextend -L +1G /dev/lvm_test/lvm
Size of logical volume lvm_test/lvm changed from <5.86 GiB (1500 extents) to <6.86 GiB (1756 extents).
Logical volume lvm_test/lvm successfully resized.
[root@bogon ~]# xfs_growfs /dev/lvm_test/lvm
meta-data=/dev/mapper/lvm_test-lvm isize=512 agcount=4, agsize=384000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=1536000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1536000 to 1798144
[root@bogon ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 14G 1.6G 13G 12% /
devtmpfs 479M 0 479M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.6M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 187M 97M 91M 52% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/lvm_test-lvm 6.9G 33M 6.9G 1% /lvm
lvm的使用场景:参考阿里云磁盘扩容文档 https://help.aliyun.com/document_detail/25452.html
八、Parted
MBR(Master Boot Record)称为主引导记录,是一种传统的分区机制,这种分区支持的磁盘大小有限,只可以支持 2T 以下的磁盘分区,(指整个磁盘不超过 2T)超过 2T 的磁盘,也只能划分出 2T 的使用空间,剩余出来的用不了,而 MBR 分区,最多4个主分区。
GPT 全称 GUID Partition Table ,称为全局唯一标识分区表,是一种新的分机管理机制,解决了 MBR 分区表机制存在很多缺点,可以支持超过 2T 的硬盘,可以兼容 MBR。GPT 分区机制,不再有扩展分区和逻辑分区的概念,只有主分区,GPT 最大支持的分区可以达到 128 个。
fdisk分区工具以前只支持MBR分区,对于小于2TB的磁盘,fdisk可以很好的完成对其分区的任务。但是当磁盘超过2TB时,fdisk就无法对其进行分区。目前fdisk已经实验性支持gpt分区了,但是需要慎重使用。所以更好的办法是借助parted这个工具。Parted支持MBR和GPT两种分区表类型。
parted的常见用法如下
1.将磁盘/dev/sdb更改为gpt分区表
[root@localhost ~]# parted /dev/sdb
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
//修改为gpt分区
(parted) mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? yes
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
2.新建分区
//新建一个3G的主分区
(parted) mkpart primary 1 3G
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3000MB 2999MB primary
3.删除分区
parted: invalid token: p
Ignore/Cancel? Ignore
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3000MB 2999MB primary
2 3000MB 6000MB 3000MB primary
3 6000MB 9000MB 3000MB primary
(parted) rm 3
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3000MB 2999MB primary
2 3000MB 6000MB 3000MB primary
4.修改分区为mbr
(parted) mklabel msdos
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? yes
(parted)
(parted)
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
5.新建主区和扩展分区
(parted) mkpart primary 1 3G
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 3000MB 2999MB primary
(parted) mkpart primary 3G 6G
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 3000MB 2999MB primary
2 3000MB 6000MB 3000MB primary
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 3000MB 2999MB primary
2 3000MB 6000MB 3000MB primary
(parted) mkpart extended 6G -1
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 3000MB 2999MB primary
2 3000MB 6000MB 3000MB primary
3 6000MB 21.5GB 15.5GB extended lba
(parted) mkpart logical 6G 10G
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 3000MB 2999MB primary
2 3000MB 6000MB 3000MB primary
3 6000MB 21.5GB 15.5GB extended lba
5 6001MB 10.0GB 3999MB logical
注意: parted 不论是使用 交互模式,还是命令行模式,每次执行的命令立即生效,也就是说你,你创建一个分区,立即就会写入磁盘,而不是像 fdisk 那样,最后执行 w 的时候才会保存并写入到磁盘,parted 由于是实时生效,所以也不会有类似 fdisk 那样的 w 命令。
九、DD命令
dd命令可以用来创建空文件,还可以备份文件,创建物理硬盘的镜像。
常见用法
1.备份及恢复文件
//备份/dev/sda1设备内容到/tmp/boot.dd
//dd命令输入和输出都是文件,if表示从哪个文件读取,of表示写入到哪个文件去。bs表示块大小
[root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.dd bs=1M
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 13.8842 s, 15.1 MB/s
[root@localhost ~]# ll -h /tmp/boot.dd
-rw-r--r--. 1 root root 200M May 22 01:48 /tmp/boot.dd
//如/dev/sda1损坏,可将备份文件/tmp/boot.dd恢复
[root@localhost ~]# dd if=/tmp/boot.dd of=/dev/sda1 bs=1M
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 4.76358 s, 44.0 MB/s
[root@localhost ~]# ls /boot/
System.map-3.10.0-693.el7.x86_64
config-3.10.0-693.el7.x86_64
efi/
grub/
grub2/
initramfs-0-rescue-2b3527d9534847f3abfab60f25abb1a1.img
initramfs-3.10.0-693.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-693.el7.x86_64.gz
vmlinuz-0-rescue-2b3527d9534847f3abfab60f25abb1a1*
vmlinuz-3.10.0-693.el7.x86_64*
//备份磁盘
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB) copied, 769.329 s, 27.9 MB/s
//备份磁盘为img文件
[root@localhost ~]# dd if=/dev/sda of=/mnt/fdb1/disk.img
dd: writing to ‘/mnt/fdb1/disk.img’: No space left on device
40895593+0 records in
40895592+0 records out
20938543104 bytes (21 GB) copied, 306.317 s, 68.4 MB/s
//以压缩的方式备份磁盘为img
//以gizp压缩
[root@localhost ~]# dd if=/dev/sda | gzip > disk.img.gz
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB) copied, 654.122 s, 32.8 MB/s
[root@localhost ~]# ls -lh disk.img.gz
-rw-r--r--. 1 root root 4.9G May 22 03:15 disk.img.gz
//以bzip2压缩
[root@localhost ~]# dd if=/dev/sda | bzip2 > disk.img.bz2
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB) copied, 2007.82 s, 10.7 MB/s
//查看dd执行状态,因为dd执行过程比较久,可以将其放入后台执行
[root@localhost ~]# ps aux | grep -w dd | grep -v grep | awk '{print $2}'
2855
查看状态
[root@localhost ~]# kill -USR1 2855
[root@localhost ~]# 2888921+0 records in
2888921+0 records out
1479127552 bytes (1.5 GB) copied, 177.429 s, 8.3 MB/s
2.销毁数据
[root@localhost ~]# dd if=/dev/urandom of=/dev/sdb5
dd: writing to ‘/dev/sdb5’: No space left on device
7811073+0 records in
7811072+0 records out
3999268864 bytes (4.0 GB) copied, 94.7671 s, 42.2 MB/s
3.测试磁盘性能
//测试纯写入速度
//if=/dev/zero不生产I/O
//默认写缓冲起作用(buffer)
[root@localhost ~]# dd if=/dev/zero of=/tmp/dd.write bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 17.0442 s, 60.1 MB/s
//同步写入数据,数据和属性同步更新
[root@localhost ~]# dd if=/dev/zero of=/tmp/dd.write bs=1024 count=1000000 conv=fsync
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 20.6838 s, 49.5 MB/s
//同步写入数据,只影响文件的数据部分
[root@localhost ~]# dd if=/dev/zero of=/tmp/dd.write bs=1024 count=1000000 conv=fdatasync
1000000+0 records in
1000000+0 records out
1024000000 bytes (1.0 GB) copied, 12.1371 s, 84.4 MB/s
//测试纯读取速度
// /dev/null不生产I/O
[root@localhost ~]# dd if=/tmp/dd.write of=/dev/null bs=128k
7812+1 records in
7812+1 records out
1024000000 bytes (1.0 GB) copied, 8.72556 s, 117 MB/s
//测试读写速度
[root@localhost ~]# dd if=/tmp/dd.write of=/tmp/dd1 bs=64k
15625+0 records in
15625+0 records out
1024000000 bytes (1.0 GB) copied, 26.0144 s, 39.4 MB/s
十、raid
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列。
RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。
RAID 级别有许多种,各有各的限制和优点。选择哪种 RAID 级别较为合适完全取决于用户自身的需要。
RAID 0:条带集 -(或条带卷)将数据平均分布到两个或两个以上磁盘中,不带冗余奇偶校验信息。
RAID 1:镜像集 – 在两个或两个以上磁盘上创建一组数据的镜像或原样副本,提供针对单一磁盘故障的保护。
RAID 0+1:条带的镜像 – 此种级别的 RAID 用于在多个磁盘之间共享和复制数据。
RAID 5:带奇偶校验的条带集– 需要至少三个磁盘,将带有奇偶校验数据的数据块级条带分布到所有磁盘中,这是一种实现低价冗余的理想方法。
RAID 10:镜像的条带 – 有时也称为 RAID 1+0,它与 RAID 0+1 类似,但既然 RAID 10 是镜像的条带,所以它与 RAID 0+1 恰好相反。
串联:JBOD – “简单磁盘捆绑”,是一种将多个磁盘组合成单一虚拟硬盘的常见方法,这种方法无法享受 RAID 优势。
RAID 术语
为更好地了解 RAID 的工作方式,首先应熟悉以下术语:
条带化是指将数据分到多个驱动器上。条带 RAID 阵列通常用于将最大的容量合并到单个卷中。
镜像是指将数据复制到多个磁盘上。镜像 RAID 阵列通常能在阵列中有磁盘(至少一个)发生故障时确保数据不丢失,具体取决于阵列的 RAID 级别。
容错可让 RAID 阵列在磁盘发生故障时继续工作(即用户仍然可以使用阵列中存储的数据)。不过,并不是所有镜像 RAID 阵列都是用户友好的。例如,有些 RAID 设备必须在关闭后才能更换发生故障的磁盘,而设备支持“热插拔”式磁盘更换,因此可以在设备开启、而且数据可供访问的情况下更换故障磁盘。
常见RAID 级别
RAID 0
RAID 0(在某些设备中也称为 FAST 模式)是速度最快的一种 RAID 模式。它需要至少两个驱动器,并且会将数据分条到每个磁盘。所有磁盘的可用容量合在一起,成为计算机上的一个逻辑卷。一旦阵列中有一个物理磁盘发生故障,所有磁盘的数据都将不可访问,因为有部分数据已被写入所有磁盘。
RAID 1
RAID 1(在某些设备中也称为 SAFE 模式)是一种安全的 RAID 模式,它至少需要两个驱动器,并且驱动器成对工作。计算机上将安装一个逻辑卷,两个驱动器合并后的可用容量限制为不超过最小磁盘的容量。如果其中一个物理磁盘出现故障,可以立即从第二个磁盘上获取数据。即使一个磁盘出现故障,也不会丢失任何数据。
RAID 3
RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘(右侧图例中的磁盘 4),因此计算机上会安装一个卷。RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。
RAID 3+Spare
RAID 3+Spare模式下,阵列中会有一个磁盘保持空置状态。如果阵列中有驱动器发生故障,故障磁盘中的数据就会自动重建到空磁盘(或称为“备用”磁盘)上。
RAID 5
RAID 5 综合了 RAID 0 的条带化技术以及阵列数据冗余技术(阵列最少包括三个磁盘)。
RAID 3 和 RAID 5 之间的区别在于,RAID 3 配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。
RAID 6
在 RAID 6 中,数据会在所有磁盘(最少四个)间进行分条,并且每个数据块的两个奇偶校验块(如右图中的 p 和 q)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。这种 RAID 模式最多允许两个磁盘出故障而不丢失数据,而且它能更快地重建故障磁盘上的数据。
RAID 0+1
RAID 0+1 是一种安全的 RAID 模式,由条带集的镜像组成。RAID 0+1 阵列包含的磁盘数应为四的倍数。在 RAID 0+1 阵列中,具有五个磁盘的存储产品的第五个磁盘将成为备用磁盘或空置磁盘。在右图中,阵列 B 是阵列 A 的镜像。
在 RAID 0+1 阵列中,最多允许两个磁盘出现故障而不会丢失数据,但故障磁盘必须属于同一 RAID 0 队列。在图中,也就是当磁盘 1 和磁盘 2 出现故障时,数据会保存到磁盘 3 和磁盘 4。
RAID 10
RAID 10(也称为 RAID 1+0)是合并了其他级别(尤其是 RAID 1 和 RAID 0)特点的另一种 RAID 级别。这是一种“镜像集条带”,意思是数据在两个镜像阵列间分条。“条带化”在阵列之间发生,而“镜像”是在相同的阵列中出现,两种技术的组合加快了重建的速度。RAID 10 阵列包含的磁盘数应为四的倍数。在 RAID 10 阵列中第五个磁盘将成为备用磁盘或空置磁盘。请参见下图。
在 RAID 10 阵列中,每个镜像对中可以有一个磁盘出现故障而不丢失数据。不过,故障磁盘所在阵列的工作磁盘会成为整个阵列中的弱点。如果镜像对中的另一个磁盘也发生故障,则会丢失整个阵列。
十一、存储基础知识
常用的硬盘
1、SATA盘:比较早的硬盘,现在基本不用了,特点是存储容量大,价格低;缺点是读取速度慢,不适合频繁的操作。
2、SAS盘:串行SCSI盘,现在比较流行的盘,特点是读取速度快,价格适中,性价比高。
3、SSD盘:固态硬盘,特点是读取速度极快,价格昂贵,生命周期短暂,性价比底。
4、NL-SAS:近线SAS,盘体采用的SATA,接口采用SAS,结合了两者的优点于一身,主要用在容量盘中。
存储常用的协议
1、ATA和SATA:其实这个定义可以不用记住,因为是比较老的东西,现在用的也不多,大家了解一下就可以了。
ATA是一种很早就出现的接口类型,后者是前者的改进即串行的ATA。
2、SCSI:这个出现的也是比较早,最先由IBM公司提出来,前期用于小型机的接口,全称叫“小型计算机系统接口”S(small)C(computer)S(system)I(interface)。后来又衍生出ISCSI。
3、SAS:就是串行的SCSI。
4、FC:光纤通道协议,它是光纤传输使用的协议。
网络存储的常见模式
DAS
直连式存储(Direct-AttachedStorage)。在这种方式中,存储设备是通过电缆(通常是SCSI接口电缆)直接到服务器的。DAS方案中外接式存储设备目前主要是指RAID、JBOD等。
NAS
网络附属存储(Network Attached Storage),NAS是在网络中放置一个单独的存储服务器,此存储服务器开启网络共享。
SAN
存储区域网络(Storage Area Network),SAN连接又分ISCSI(网口)SAS(SAS口)以及FC(光纤口)连接
注:这种连接需要单独的存储产品。可以通过交换机连接。
iSCSI
iSCSI是IETF提出的经TCP/IP/以太网传送SCSI指令的协议。通过iSCSI协议,标准的SCSI命令和数据将被封装成一个以iSCSI头在先的连续字节串,该字节串被送到TCP/IP层,并被分解成适合网络传输的数据组后,交给主机和适用与iSCSI协议的存储设备
参考文章
https://my.oschina.net/u/3804239/blog/1792030
https://my.oschina.net/u/3804239/blog/1793641'
http://blog.51cto.com/13646023/2097201
https://www.2cto.com/os/201204/126370.html
https://www.cnblogs.com/kevingrace/p/5825963.html
https://blog.csdn.net/caipeichao2/article/details/52661825
http://zuyunfei.com/2015/06/04/linux-dd/
http://forum.huawei.com/enterprise/zh/thread-274145-1-1.html
https://blog.csdn.net/JesseYoung/article/details/38367217