这是输出df -k
:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 10317860 7059008 2734732 73% /
none 847584 0 847584 0% /dev/shm
/dev/xvdb 153899044 192068 145889352 1% /mnt/ephemeral
我正在使用 Centos EBS 启动映像。
我读过关于此问题的各种问题,但它们都要求安装新驱动器。但我认为该驱动器已安装在/dev/xvdb
。我说得对吗?
我可以用这个吗:
mkswap -f /dev/xvdb
#add in /etc/fstab
/dev/xvdb swap swap defaults 0 0
swapon /dev/xvdb
它会起作用吗?
答案1
/dev/xvdb 确实已安装,您需要检查其中是否存储了您想要保留的内容,尽管将重要内容保存在临时驱动器上是一个非常糟糕的主意。
在对 /dev/xvdb 进行任何操作之前,您需要卸载它。
虽然你可以
mkswap /dev/xvdb
它会将整个临时驱动器用作交换空间,而您几乎肯定不需要它。此外,如果您对交换空间进行分区,则可以将临时驱动器的其余部分用于诸如 tmp 文件夹之类的用途,或存储会话(如果您的主机是 Web 服务器)。临时驱动器非常快,但遗憾的是不太持久。
无论如何,回到交换分区!
最好使用 Abhishek 提到的 sfdisk,或者使用 fdisk 手动创建交换分区:
fdisk /dev/xvdb
Press N to create a new partition
P for primary
1 for the first partition
Press Enter to accept the first location
Enter +xG where x is the size of the swapspace you want. I typically use twice the amount of RAM, but this is not a hard and fast rule
Enter T to change the type
Enter 82 for Linux Swap
Enter W to write the changes
Enter q to quit
现在可以使用以下命令创建交换空间
mkswap /dev/xvdb1
然后启用它
swapon /dev/xvdb1
不过,我要提醒一句,如果我“教奶奶吸鸡蛋”,我深表歉意。但顾名思义,临时驱动器是……嗯,临时的。如果您关闭实例,则必须重新创建交换分区并启用它。因此,不要将新创建的交换空间添加到 fstab 中。
但重新启动应该没问题。
答案2
我已经创建了一个脚本这可能有助于在临时设备上创建交换。它使用 lvm 创建交换卷,还创建一个可能用作 /tmp 的卷。您可以使用 cloud-init 来触发它。
bootcmd:
- [ cloud-init-per, once, mk-eph, /usr/local/sbin/mk-eph.sh]
# Filesystem setup
fs_setup:
- label: 'tmp'
filesystem: 'xfs'
device: '/dev/ephemeral/tmp'
partition: 'auto'
mounts:
- [ /dev/ephemeral/tmp, /tmp, auto, "defaults,nobootwait" ]
- [ ephemeral0, null ]
runcmd:
- [ chmod, 1777, /tmp ]
答案3
首先卸载永久存储并重新安装,如下所示
umount /dev/xvdb # in case it is already mounted
sfdisk /dev/xvdb << EOF
,1024,82
,
;
;
EOF
mkswap /dev/xvdb1 && swapon /dev/xvdb1
mkfs.xfs -f /dev/xvdb2 && mount /dev/xvdb2 /mnt