今天部署测试环境至华为云,安装ORACLE提示SWAP空间为空,强制安装发现系统闪退。最后发现华为云自带的系统模板和电信云相比较,用df -h 命令查看,发现确实没有swap分区,还好华为云的帮助文档有介绍,自己也学习一下:
场景一:使用块设备创建swap
- 执行以下命令,新建一个分区(以2G为例)。
# fdisk /dev/vdb
回显信息如下:
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-20971519, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +2G Partition 1 of type Linux and of size 2 GiB is set
Command (m for help): p Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 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: 0x1f02f438 Device Boot Start End Blocks Id System /dev/vdb1 2048 4196351 2097152 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
- 将新建的分区创建为swap,执行:
# mkswap /dev/vdb1
- 激活swap分区,执行:
# swapon /dev/vdb1
查询已启动的swap,执行:
# swapon -s
- 查询swap分区UUID,执行:
# blkid |grep swap |awk '{print $2}'
UUID="1ee90e3c-1538-453b-9240-ad430f835f6f"
- 实现swap开机自动挂载,将挂载信息写入/etc/fstab(swap的UUID从步骤4获取,请根据实际情况填写),执行:
# echo "UUID=1ee90e3c-1538-453b-9240-ad430f835f6f swap swap defaults 0 0" >>/etc/fstab
- 挂载swap,执行:
# mount -a
场景二:使用文件模拟的块设备做swap分区
说明:
使用文件模拟的块设备做swap性能较之直接使用块设备性能较差。
- 创建1G的swap文件,执行:
# dd if=/dev/zero of=/swapfile bs=1M count=1000
- 更改文件为swap
# chmod 600 /swapfile
- 更改文件属性为swap,执行:
# mkswap /swapfile
- 启用swap,执行:
# swapon /swapfile
- 实现swap开机自动挂载,将swap文件挂载写入/etc/fstab,格式如下
# echo "/swapfile swap swap defaults 0 0" >>/etc/fstab
- 挂载swap,执行:
# mount -a