前言

最近甲骨文云 Oracle Cloud 良心的推出了永久免费的 ARM 实例,竟然给出了最多 4 核 24G 内存 4G 带宽的配置.羊毛党怎么会轻易错过.在折腾了一天后,整理和总结了一些大家常用会需要了解的信息和解决方案.


由于甲骨文的操作系统经常更新,本文的相关教程可能会有实效性,请参考使用.

当前更新于:2021年05月27日


本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

本文教程基于 Oracle Linux 系统

永久免费

原本永久免费2台 1核 1G 的实例依旧保持免费不变,在此基础上新增了ARM实例配额.根据说明免费的ARM配置最高可以达到 4核 24G ,可以新建1台 4C24G 的服务器,也可以拆分为2台 2C12G 的.

值得注意的是:一个帐号的存储免费额度只有200G,而每台实例的系统盘也就是引导卷,最少需占用46G,如果已经拥有了2台老的免费1C1G服务器,就已经占用了约100G额度.所以想将4C24G拆分为41C6G会使引导卷超出免费额度,可能会导致出现额外费用.

所以个人建议:根据需求自行创建,博主是在拥有原始21C1G的免费实例前提下,在创建了14C24G,并将引导卷增加到100G,完美覆盖免费额度.同时引导卷的IO能力是根据卷大小而定,相比默认的46G还是有一定提升.

查看块存储所有引导卷是否显示Always Free

引导卷扩容

如果在创建实例时,设置了更大的引导卷,同时操作系统选择的Oracle Linux,在开机后,登陆服务器查询磁盘sda的容量确实提高了,但是/根目录的分区遵循Oracle Linux镜像的尺寸,只有38G.需要手动扩容系统盘.

查看sda磁盘容量

fdisk -l # 查看分区详情

执行扩容命令

LANG=en_US.UTF-8 sudo /usr/libexec/oci-growfs

在次检查磁盘和分区详情

lsblk

开启 root 登陆

Oracle 的实例默认都是使用opc登陆,在执行sudo -i提权.对于个人用户可能有点麻烦,可以设置sshd_config来开启,同时也可以开启密码登陆.

配置 root 账户的证书登陆的公钥

sudo -i # 提权 vi /root/.ssh/authorized_keys

ssh-rsa之前的no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"opc\" rather than the user \"root\".';echo;sleep 10"删除.

配置 sshd

编辑sshd_config文件

 vi /etc/ssh/sshd_config

找到#PermitRootLogin yes,删除#符号.
找到#PasswordAuthentication yes删除#符号.

保存后执行命令生效:

systemctl restart sshd

创建密码

passwd

此时可以同时使用证书密码直接登陆root帐号.

yum

在安装docker时,会提示依赖版本不够的错误导致无法继续安装.这是因为Oracle Linux的 yum 源的问题.

ARM版的 yum 源坑也不小,详细不多解释了,执行以下命令添加centos-extras源:

cat >/etc/yum.repos.d/centos-extras.repo << 'EOF' [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras&infra=$infra gpgcheck=0 EOF

docker

在配置完yum后即可参考 官方文档 安装docker了,依次执行以下三条命令:

sudo yum install -y yum-utils sudo yum-config-manager \     --add-repo \     https://download.docker.com/linux/centos/docker-ce.repo      sudo yum install -y docker-ce docker-ce-cli containerd.io

启动并设置开机自动启动

sudo systemctl start docker sudo systemctl enable docker


注意 ARM 版的 docker 只能运行支持 ARM 的镜像.例如常见的 nginx , redis 等都是支持的.

docker compose

内容略长,单独发布了文章,请访问:
ARM 架构 Linux 使用 docker compose 教程

BBR

目前还没有支持甲骨文ARM实例BBRPlus的脚本,不过Oracle Linux本身的内核是支持BBR的,使用老的脚本选择4开启即可.


此脚本博主仅只测试过选择 4 开启 BBR 功能,其他选项并未测试,请慎重选择以免导致实例失联或无法开机等情况.
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

关于创建实例就被终止和 IP 问题

默认每账户只能有两个保留 IP,很多人以前可能被墙过 IP ,所以曾经更换过,就把保留 IP换成了临时 IP,所以现在就可以继续创建.由于创建新实例默认是分配保留 IP,所以创建好系统发现超出了限制所以强行终止.可以在创建时选择不要公网 IP,创建完毕后在实例的Attached VNICs里的IPv4 Addresses中在分配临时 IP即可.