Top

NSD ENGINEER DAY02

  1. 案例1:硬盘分区及格式化
  2. 案例2:分区扩展Swap空间
  3. 案例3:文件扩展Swap空间

1 案例1:硬盘分区及格式化

1.1 问题

本例要求熟悉硬盘分区结构,使用fdisk分区工具在磁盘 /dev/sdb 上按以下要求建立分区:

  1. 采用默认的 msdos 分区模式
  2. 第1个分区 /dev/sdb1 的大小为 200MiB
  3. 第2个分区 /dev/sdb2 的大小为 2000MiB
  4. 第3个分区 /dev/sdb3 的大小为 1000MiB

完成分区后,能够配置开机自动挂载 /dev/sdb2 分区:

  1. 文件系统类型为 EXT4
  2. 将其挂载到 /mnt/part2 目录

1.2 方案

fdisk分区工具用来建立msdos分区方案,其交互模式中的主要指令如下:

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:新建分区表

1)打开fdisk工具,操作磁盘/dev/sdb

  1. [root@server0 ~]# fdisk /dev/sdb
  2. Welcome to fdisk (util-linux 2.23.2).
  3.  
  4. Changes will remain in memory only, until you decide to write them.
  5. Be careful before using the write command.
  6.  
  7. Device does not contain a recognized partition table
  8. Building a new DOS disklabel with disk identifier 0x9ac1bc10.
  9.  
  10. Command (m for help):                         //交互操作提示信息

2)新建第1个分区/dev/sdb1

  1. Command (m for help): n                                 //新建分区
  2. Partition type:
  3. p primary (0 primary, 0 extended, 4 free)
  4. e extended
  5. Select (default p): p                                 //类型为p(主分区)
  6. Partition number (1-4, default 1): 1                     //分区编号1
  7. First sector (2048-20971519, default 2048):             //起始位置默认
  8. Using default value 2048
  9. Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +200M
  10. Partition 1 of type Linux and of size 200 MiB is set     //结束位置+200MiB大小
  11.  
  12. Command (m for help): p                             //确认当前分区表
  13. .. ..
  14. Device Boot Start End Blocks Id System
  15. /dev/sdb1 2048 411647 204800 83 Linux

3)新建第2个分区/dev/sdb2

  1. Command (m for help): n
  2. Partition type:
  3. p primary (1 primary, 0 extended, 3 free)
  4. e extended
  5. Select (default p): p                                 //类型为p(主分区)
  6. Partition number (2-4, default 2): 2                    //分区编号2
  7. First sector (411648-20971519, default 411648):         //起始位置默认
  8. Using default value 411648
  9. Last sector, +sectors or +size{K,M,G} (411648-20971519, default 20971519): +2000M
  10. Partition 2 of type Linux and of size 2 GiB is set     //结束位置+2000MiB大小
  11.  
  12. Command (m for help): p                             //确认当前分区表
  13. .. ..
  14. Device Boot Start End Blocks Id System
  15. /dev/sdb1 2048 411647 204800 83 Linux
  16. /dev/sdb2 411648 4507647 2048000 83 Linux

4)新建第3个分区/dev/sdb3

  1. Command (m for help): n
  2. Partition type:
  3. p primary (2 primary, 0 extended, 2 free)
  4. e extended
  5. Select (default p): p
  6. Partition number (3,4, default 3): 3
  7. First sector (4507648-20971519, default 4507648):
  8. Using default value 4507648
  9. Last sector, +sectors or +size{K,M,G} (4507648-20971519, default 20971519): +1000M
  10. Partition 3 of type Linux and of size 1000 MiB is set
  11.  
  12. Command (m for help): p                             //确认当前分区表
  13. .. ..
  14. Device Boot Start End Blocks Id System
  15. /dev/sdb1 2048 411647 204800 83 Linux
  16. /dev/sdb2 411648 4507647 2048000 83 Linux
  17. /dev/sdb3 4507648 6555647 1024000 83 Linux

5)保存分区更改,退出fdisk分区工具

  1. Command (m for help): w                                 //保存并退出
  2. The partition table has been altered!
  3.  
  4. Calling ioctl() to re-read partition table.
  5. Syncing disks.

6)刷新分区表

  1. [root@server0 ~]# partprobe /dev/vdb         //重新检测磁盘分区
  2. //或者
  3. [root@server0 ~]# reboot                     //对已使用中磁盘的分区调整,应该重启一次
  4. .. ..

步骤二:格式化及挂载分区

1)将分区/dev/sdb2格式化为EXT4文件系统

  1. [root@server0 ~]# mkfs.ext4 /dev/sdb2
  2. .. ..
  3. Allocating group tables: done
  4. Writing inode tables: done
  5. Creating journal (8192 blocks): done
  6. Writing superblocks and filesystem accounting information: done

2)配置开机自动挂载

  1. [root@server0 ~]# vim /etc/fstab
  2. .. ..
  3. /dev/sdb2 /mnt/part2 ext4 defaults 0 0

3)创建挂载点,并验证挂载配置

  1. [root@server0 ~]# mkdir /mnt/part2                 //创建挂载点
  2. [root@server0 ~]# mount -a                         //挂载fstab中的可用设备
  3. [root@server0 ~]# df -hT /mnt/part2/                 //检查文档所在的文件系统及设备
  4. Filesystem Type Size Used Avail Use% Mounted on
  5. /dev/sdb2 ext4 1.9G 5.9M 1.8G 1% /mnt/part2

2 案例2:分区扩展Swap空间

2.1 问题

  1. 从磁盘sdd上划分一个2G的分区sdd1
  2. 将/dev/sdd1格式化为Swap文件系统
  3. 启用/dev/sdd1分区,查看Swap空间大小
  4. 停用/dev/sdd1分区,查看Swap空间大小

2.2 方案

首先要明白Swap分区空间是来源于硬盘,而要想扩充Swap空间的大小,思路很简单就是把硬盘的分区格式成Swap文件系统,再扩充到Swap空间中区。

对于Swap分区有它独立的格式化命令和扩充命令,这里要和普通分区的格式化命令和挂载命令区分开。此外它还有独立查看Swap空间组成的命令。

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:从磁盘sdd上划分一个2G的分区sdd1

命令操作如下所示:

  1. [root@localhost ~]# fdisk /dev/sdd
  2. 欢迎使用 fdisk (util-linux 2.23.2)
  3.  
  4. 更改将停留在内存中,直到您决定将更改写入磁盘。
  5. 使用写入命令前请三思。
  6.  
  7. Device does not contain a recognized partition table
  8. 使用磁盘标识符 0x6faf1c3f 创建新的 DOS 磁盘标签。
  9.  
  10. 命令(输入 m 获取帮助):n
  11. Partition type:
  12. p primary (0 primary, 0 extended, 4 free)
  13. e extended
  14. Select (default p): #回车
  15. Using default response p
  16. 分区号 (1-4,默认 1): #回车
  17. 起始 扇区 (2048-41943039,默认为 2048): #回车
  18. 将使用默认值 2048
  19. Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)+2G
  20. 分区 1 已设置为 Linux 类型,大小设为 2 GiB
  21. 命令(输入 m 获取帮助):p
  22. 磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
  23. Units = 扇区 of 1 * 512 = 512 bytes
  24. 扇区大小(逻辑/物理):512 字节 / 512 字节
  25. I/O 大小(最小/最佳):512 字节 / 512 字节
  26. 磁盘标签类型:dos
  27. 磁盘标识符:0x6faf1c3f
  28.  
  29. 设备 Boot Start End Blocks Id System
  30. /dev/sdd1 2048 4196351 2097152 83 Linux
  31. 命令(输入 m 获取帮助):w
  32. The partition table has been altered!
  33.  
  34. Calling ioctl() to re-read partition table.
  35. 正在同步磁盘。
  36. [root@localhost ~]#

步骤二:将/dev/sdd1格式化为swap文件系统

命令操作如下所示:

  1. [root@localhost ~]# mkswap /dev/sdd1 //格式化为swap文件系统
  2. Setting up swapspace version 1, size = 1951740 KiB
  3. no label, UUID=848ca15c-a03e-4e0b-9ac0-bfd6507d0b7e

步骤三:启用/dev/sdd1分区,查看swap空间大小

命令操作如下所示:

  1. [root@localhost ~]# swapon –s //未启用之前,查看swap空间组成成员
  2. Filename Type Size Used Priority
  3. /dev/sda5 partition 8388600 0 -1
  4. [root@localhost ~]# swapon /dev/sdd1 //启用/dev/sdd1交换分区
  5. [root@localhost ~]# swapon –s //启用之后,查看swap空间组成成员
  6. Filename Type Size Used Priority
  7. /dev/sda5 partition 8388600 0 -1
  8. /dev/sdd1 partition 1951736 0 -2
  9. [root@localhost ~]#

步骤四:停用/dev/sda8分区,查看swap空间大小

命令操作如下所示:

  1. [root@localhost ~]# swapoff /dev/sdd1 //停用/dev/sdd1交换分区
  2. [root@localhost ~]# swapon -s
  3. Filename Type Size Used Priority
  4. /dev/sda5 partition 8388600 0 -1
  5. [root@localhost ~]#

3 案例3:文件扩展Swap空间

3.1 问题

  1. 使用dd命令创建一个大小为2048MB的交换文件,放在/opt/swap.db
  2. 将swap.db文件格式化成Swap文件系统
  3. 启用swap.db文件,查看Swap空间大小
  4. 停用swap.db文件,查看Swap空间大小

3.2 方案

Swap空间来源于硬盘空间,这个思路不变。我们可以换种方式,来扩展Swap空间。就是可以创建一个大的文件,文件占用的是磁盘空间,再将这个文件格式化使用。这个方式是可行的,但难点在于文件怎么生成呢?我们可以用dd这条命令。

例如 dd if=/dev/zero of=/opt/swap.db bs=1M count=2048 ,相关说明如下:

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用dd命令创建一个大小为2048MB的交换文件,放在/opt/swap.db

命令操作如下所示:

  1. [root@localhost ~]# dd if=/dev/zero of=/opt/swap.db bs=1M count=2048
  2. 记录了2048+0 的读入
  3. 记录了2048+0 的写出
  4. 2147483648字节(2.1 GB)已复制,95.5419 秒,22.5 MB/
  5. [root@localhost ~]# ls -lh /opt/swap.db
  6. -rw-r--r--. 1 root root 2.0G 227 21:24 /opt/swap.db

步骤二:将swap.db文件格式化成Swap文件系统

命令操作如下所示:

  1. [root@localhost ~]# mkswap /opt/swap.db     //将文件格式化为Swap文件系统
  2. mkswap: /opt/swap.db: warning: don't erase bootbits sectors
  3. on whole disk. Use -f to force.
  4. Setting up swapspace version 1, size = 2097148 KiB
  5. no label, UUID=4dc743fd-86a6-477b-a3fc-a811f41dbd43
  6. [root@localhost ~]#

步骤三:启用swap.db文件,查看Swap空间大小

命令操作如下所示:

  1. [root@localhost ~]# swapon /opt/swap.db //启用swap.db文件
  2. [root@localhost ~]# swapon -s
  3. Filename Type Size Used Priority
  4. /dev/sda5 partition 8388600 0 -1
  5. /opt/swap.db file 2097144 0 -2
  6. [root@localhost ~]#

步骤四:停用swap.db文件,查看Swap空间大小

命令操作如下所示:

  1. [root@localhost ~]# swapoff /opt/swap.db //停用swap.db文件
  2. [root@localhost ~]# swapon -s
  3. Filename Type Size Used Priority
  4. /dev/sda5 partition 8388600 0 -1
  5. [root@localhost ~]#