磁盘管理

磁盘管理
 
MBR
512字节
三部分组成
主引导程序:bootloader 446
分区表:64字节
魔数:55AA
 
主分区:最多是4个。编号默认是从1开始。
扩展分区:最多是一个,可以是0个。
逻辑分区:可以很多个,逻辑分区是建立在扩展分区之上的
 
扩展分区不能使用的,它只是做为逻辑分区的容器存在的,先创建一个扩展分区,在拓展分区之上创建逻辑分区;
我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中。
 
文件系统
centos6系统默认的是ext4
centos7系统默认的是xfs
 
Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,
它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。
另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。
 
XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,
它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,
而且强大的日志功能只用花费极低的计算和存储性能。
并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。
 
fdisk分区管理工具
 
n 添加新分区
p 打印分区信息
w 保存分区信息并退出
q 不保存退出
 
例子1:创建主分区
 
第一步:创建主分区
[root@ken1 ~]# 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 0x1eff4d75.
 
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)
 
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):   #回车默认编号为1
First sector (2048-41943039, default 2048):   #默认分区起始值
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +30G #分区大小不能超过磁盘总大小
Value out of range.
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1G    #想要分区的大小    
Partition 1 of type Linux and of size 1 GiB is set
 
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: 0x1eff4d75
 
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
 
Command (m for help): W   #保存当前分区信息
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
 
 
 
第二步:查看分区
[root@ken1 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1
 
 
第三步:进行格式化就是安装文件系统的过程
[root@ken1 ~]# mkfs.xfs /dev/sdb1
 
 
第四步:挂载使用
[root@ken1 ~]# mount /dev/sdb1 /ken
[root@ken1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.3G   16G   8% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/sr0                 4.2G  4.2G     0 100% /mnt
tmpfs                     98M     0   98M   0% /run/user/0
/dev/sdb1               1014M   33M  982M   4% /ken
 
 
[root@ken1 ~]# mkdir /ken  #创建挂载点
[root@ken1 ~]# mount /dev/sdb1 /ken #把磁盘分区挂载到linux系统一个目录下
[root@ken1 ~]# df -h   #查看挂载信息
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.3G   16G   8% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/sr0                 4.2G  4.2G     0 100% /mnt
tmpfs                     98M     0   98M   0% /run/user/0
/dev/sdb1               1014M   33M  982M   4% /ken
 
第五步:验证数据写入位置 #数据写入磁盘中
[root@ken1 ~]# touch /ken/{1..100}.txt
[root@ken1 ~]# ls /ken
100.txt  17.txt  24.txt  31.txt  39.txt  46.txt  53.txt  60.txt  68.txt  75.txt  82.txt  8.txt   97.txt
10.txt   18.txt  25.txt  32.txt  3.txt   47.txt  54.txt  61.txt  69.txt  76.txt  83.txt  90.txt  98.txt
11.txt   19.txt  26.txt  33.txt  40.txt  48.txt  55.txt  62.txt  6.txt   77.txt  84.txt  91.txt  99.txt
12.txt   1.txt   27.txt  34.txt  41.txt  49.txt  56.txt  63.txt  70.txt  78.txt  85.txt  92.txt  9.txt
13.txt   20.txt  28.txt  35.txt  42.txt  4.txt   57.txt  64.txt  71.txt  79.txt  86.txt  93.txt
14.txt   21.txt  29.txt  36.txt  43.txt  50.txt  58.txt  65.txt  72.txt  7.txt   87.txt  94.txt
15.txt   22.txt  2.txt   37.txt  44.txt  51.txt  59.txt  66.txt  73.txt  80.txt  88.txt  95.txt
16.txt   23.txt  30.txt  38.txt  45.txt  52.txt  5.txt   67.txt  74.txt  81.txt  89.txt  96.txt
[root@ken1 ~]# umount /ken
[root@ken1 ~]# ls /ken
[root@ken1 ~]# mkdir /ken1
[root@ken1 ~]# mount /dev/sdb1 /ken1
[root@ken1 ~]# ls /ken1
100.txt  17.txt  24.txt  31.txt  39.txt  46.txt  53.txt  60.txt  68.txt  75.txt  82.txt  8.txt   97.txt
10.txt   18.txt  25.txt  32.txt  3.txt   47.txt  54.txt  61.txt  69.txt  76.txt  83.txt  90.txt  98.txt
11.txt   19.txt  26.txt  33.txt  40.txt  48.txt  55.txt  62.txt  6.txt   77.txt  84.txt  91.txt  99.txt
12.txt   1.txt   27.txt  34.txt  41.txt  49.txt  56.txt  63.txt  70.txt  78.txt  85.txt  92.txt  9.txt
13.txt   20.txt  28.txt  35.txt  42.txt  4.txt   57.txt  64.txt  71.txt  79.txt  86.txt  93.txt
14.txt   21.txt  29.txt  36.txt  43.txt  50.txt  58.txt  65.txt  72.txt  7.txt   87.txt  94.txt
15.txt   22.txt  2.txt   37.txt  44.txt  51.txt  59.txt  66.txt  73.txt  80.txt  88.txt  95.txt
16.txt   23.txt  30.txt  38.txt  45.txt  52.txt  5.txt   67.txt  74.txt  81.txt  89.txt  96.txt
 
 
实现开机自动挂载
 
方法一:
 
[root@ken1 ~]# vim /etc/fstab
/dev/sdb1 /ken xfs defaults  0 0
 
写到该文件中系统容易起不来,解决办法
bios方法:
看视频!
 
方法二:
[root@ken1 ~]# vim /etc/rc.local
mount /dev/sdb1 /ken
[root@ken1 ~]# chmod +x /etc/rc.d/rc.local  #一定要加执行权限,否则文件中的命令无法执行
 
例子2:创建扩展分区
 
第一步:创建扩展分区
[root@ken1 ~]# 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 (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e   #创建拓展分区选择e
Partition number (2-4, default 2): 3    #分区编号可以在范围内自由选择
First sector (2099200-41943039, default 2099200): 
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +3G
Partition 3 of type Extended and of size 3 GiB is set
 
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: 0x1eff4d75
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb3         2099200     8390655     3145728    5  Extended
 
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@ken1 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1
发现没有新创建的磁盘
 
第三步:同步分区表
[root@ken1 ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@ken1 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb3
 
例子3:创建逻辑分区
第一步:挂载逻辑分区
[root@ken1 ~]# 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 (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)   
Select (default p): l  #选择l,逻辑分区编号是从5开始的,即使主分区的编号没用完
Adding logical partition 5
First sector (2101248-8390655, default 2101248): 
Using default value 2101248
Last sector, +sectors or +size{K,M,G} (2101248-8390655, default 8390655): +4G
Value out of range.
Last sector, +sectors or +size{K,M,G} (2101248-8390655, default 8390655): +1G  
Partition 5 of type Linux and of size 1 GiB is set
 
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: 0x1eff4d75
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb3         2099200     8390655     3145728    5  Extended
/dev/sdb5         2101248     4198399     1048576   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@ken1 ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@ken1 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1  /dev/sdb3  /dev/sdb5
 
 
第二步:格式化
[root@ken1 ~]# mkfs.xfs /dev/sdb5
 
第三步:挂载
[root@ken1 ~]# mount /dev/sdb5 /ken1
[root@ken1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.3G   16G   8% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/sr0                 4.2G  4.2G     0 100% /mnt
/dev/sdb1               1014M   33M  982M   4% /ken
tmpfs                     98M     0   98M   0% /run/user/0
/dev/sdb5               1014M   33M  982M   4% /ken1
 
第四步:开机自启
echo "mount /dev/sdb5 /ken" >> /etc/rc.local
 
swap交换分区
 
swap交换分区就是把磁盘中一块当中内存使用
工作中建议不用!
 
如果工作中发现交换分区用的太多,需要考虑加大内存!
 
工作中建议交换分区大小设置为2倍左右
16G 32G
 
查看交换分区:
[root@ken1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           974M         87M        751M        7.6M        134M        732M
Swap:          2.0G          0B        2.0G
 
例子1:添加2G交换分区
第一步:创建分区
 
 
第二步:格式化为swap类型
[root@ken1 ~]# mkswap /dev/sdb2
 
第三步:启动swap交换分区
[root@ken1 ~]# swapon /dev/sdb2
[root@ken1 ~]# free -h
  total        used        free      shared  buff/cache   available
Mem:           974M         88M        749M        7.6M        135M        730M
Swap:          4.0G          0B        4.0G
 
第四步:swap交换分区开机自启
vim /etc/fstab
/dev/sdb2 swap                    swap    defaults        0 0
 
LVM逻辑卷
 
物理卷PV(physical volume)  :物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质
(如分区、磁盘等)比较,却包含有与LVM相关的管理参数,创建物理卷它可以用硬盘分区,也可以用硬盘本身;
卷组VG(Volume Group)  :一个LVM卷组由一个或多个物理卷组成??
逻辑卷LV(logical volume)  :LV建立在VG之上,可以在LV之上建立文件系统
 
例子1:创建逻辑卷
 
第一步:创建物理卷
  [root@ken1 ~]# pvcreate /dev/sd{b,c,d}
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
  Physical volume "/dev/sdd" successfully created
    
第二步:创建卷组
[root@ken1 ~]# vgcreate ken /dev/sd{b,c,d}
Volume group "ken" successfully created
 
第三步:查看卷组信息
[root@ken1 ~]# vgdisplay ken
 
第四步:创建逻辑卷
[root@ken1 ~]# lvcreate -L 5G -n lv_ken ken  # -L指定创建磁盘的大小,-l指定PE数量,PE大小4M
 
第五步:查看逻辑卷详细
[root@ken1 ~]# lvdisplay /dev/ken/lv_ken 
 
第六步:格式化
[root@ken1 ~]# mkfs.xfs /dev/ken/lv_ken 
 
第七步:挂载
[root@ken1 ~]# mount /dev/ken/lv_ken /ken2
[root@ken1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.3G   16G   8% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/sr0                 4.2G  4.2G     0 100% /mnt
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/ken-lv_ken   5.0G   33M  5.0G   1% /ken2
 
LVM扩容
 
ext4扩容不能在线扩容,必须卸载才能扩容,支持扩容和缩容
xfs支持在线动态扩容,不支持缩容
 
 
例子:xfs格式扩容
 
第一步:扩容
[root@ken1 ~]# lvextend -L +5G /dev/ken/lv_ken
 
第二步:查看磁盘大小
[root@ken1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.3G   16G   8% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/sr0                 4.2G  4.2G     0 100% /mnt
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/ken-lv_ken   5.0G   33M  5.0G   1% /ken2
/dev/mapper/ken-lv_ken1  5.0G   33M  5.0G   1% /ken3
 
第三步:执行xfs_growfs
[root@ken1 ~]# xfs_growfs /dev/ken/lv_ken
meta-data=/dev/mapper/ken-lv_ken isize=512    agcount=4, agsize=327680 blks
=                       sectsz=512   attr=2, projid32bit=1
=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1310720, 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 1310720 to 2621440
 
第四步:再次查看磁盘大小
[root@ken1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G  1.3G   16G   8% /
devtmpfs                 476M     0  476M   0% /dev
tmpfs                    488M     0  488M   0% /dev/shm
tmpfs                    488M  7.7M  480M   2% /run
tmpfs                    488M     0  488M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
/dev/sr0                 4.2G  4.2G     0 100% /mnt
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/ken-lv_ken    10G   33M   10G   1% /ken2
/dev/mapper/ken-lv_ken1  5.0G   33M  5.0G   1% /ken3
 
LVM逻辑卷删除
 
第一步:卸载光盘
[root@ken1 ~]# umount /ken2
 
第二步:删除逻辑卷
[root@ken1 ~]# lvremove /dev/ken/lv_ken
Do you really want to remove active logical volume ken/lv_ken? [y/n]: y
Logical volume "lv_ken" successfully removed
 
第三步:删除卷组
 
[root@ken1 ~]# vgremove ken
Volume group "ken" successfully removed
  
第四步:删除物理卷
[root@ken1 ~]# pvremove /dev/sd{b,c,d}
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
Labels on physical volume "/dev/sdd" successfully wiped.
 
作业:扩容根磁盘在原有基础上加10G
 
[root@localhost ~]#pvcreate /dev/sdb
[root@localhost ~]# vgextend /dev/centos /dev/sdb
  Volume group "centos" successfully extended
 
[root@localhost ~]# lvextend -L +10G /dev/centos/root 
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <27.00 GiB (6911 extents).
  Logical volume centos/root successfully resized.
 
[root@localhost ~]# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, 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 4455424 to 7076864
 
[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   27G  1.2G   26G    5% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  133M  882M   14% /boot
 
posted @ 2019-07-20 10:31  kuying  阅读(209)  评论(0编辑  收藏  举报