云服务器安装AlpineLinux系统

各大云厂商提供了种类繁多的系统镜像,但唯独这个小巧可爱的Alpine无人问津。不过也难不倒咱们这些具有折腾精神的极客们。

本教程支持且不限于阿里云、腾讯云、微软云、谷歌云。

1、登录云服务器,写入Alpine安装镜像后重启
(如果无法正常启动,请先下载好ISO文件,随后切换到Debain的维护模式,再执行dd命令)

# 写入镜像
wget http://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-virt-3.13.5-x86_64.iso
dd if=alpine-virt-3.13.5-x86_64.iso of=/dev/vda
# 重启
reboot

2、通过vnc连接云服务器,将安装文件复制到内存中

# 备份文件
tar cf /sys.tar /.modloop /media/vda
# 卸载硬盘
/etc/init.d/modloop stop
umount /dev/vda
# 恢复文件
tar xf /sys.tar -C /

3、执行安装脚本,接下来就需要看你自己的啦~

setup-alpine

另一种安装方式:将本地虚拟机克隆到云服务器

  • 虚拟磁盘格式转换
apt install -y qemu-utils
qemu-img convert -f vmdk -O raw disk.vmdk disk.raw
  • 把本地虚拟机克隆到云服务器
wget -qO- http://your-domain/disk.raw.gz | gunzip | dd of=/dev/vda

ZFS文件系统常用命令

zfs的强大毋庸置疑,今天分享下自己常用的zfs相关命令

存储池基本操作命令

  • 创建名为tank的存储池 (type: ”,mirror,raidz,raidz2)
zpool create tank [type] disk1 disk2 disk3
  • 向池中添加更多空间
zpool add tank mirror disk4 disk5
  • 本机导出和导入存储池
zpool export tank
zpool import tank [newtank]
  • 更换服务器后导入存储池
zpool import -f tank
  • 查看存储池当前状态和 I/O 状况
zpool status
zpool iostat

文件系统基础操作命令

  • 创建文件系统,挂载在/export/home
zfs create -o mountpoint=/mnt/home tank/home
  • 修改文件系统名称
zfs rename tank/home tank/newname
  • 修改文件系统挂载点
zfs set mountpoint=/mnt/newdir tank/home
  • 删除文件系统
zfs destroy -Rf tank/home

文件系统快照操作命令

  • 创建一个快照
zfs snapshot tank/home@tuesday
  • 按日期创建快照
name=`date +"%Y-%m-%d"`
zfs snapshot tank/home@$name
  • 查看所有快照
zfs list -t snapshot tank/home
  • 回滚到前一个快照
zfs rollback tank/home@monday
  • 删除一个快照
zfs destroy -R tank/home@monday

冗余备份/复制数据集

zfs send tank/home@monday | zfs receive arch/home

手工挂载/卸载文件系统

zfs mount -a
zfs unmount -a
zfs unmount tank/home

VirtualBox后台批量启动虚拟机

VirtualBox作为跨平台的开源虚拟化产品,其开放的接口能力是非常强大的。即使在Windows平台,寥寥几行批处理,也可以轻松实现后台批量启动虚拟机。

@echo off

set "PATH=%PATH%;C:\Program Files\Oracle\VirtualBox"

for /f "tokens=1" %%a in ('VBoxManage list vms') do (
    VBoxManage startvm %%a -type headless
)

ping -n 10 127.1 >nul

实现docker跨主机通信 – 基于Consul的overlay网络

环境配置

配置三台机器,请注意修改hostname为不同的值,防火墙放行如下端口:2376、4789、7946、8300、8301、8302、8500、8600

consul:    172.18.0.11    安装 Consul
dnode1:    172.18.0.21    安装 Docker
dnode2:    172.18.0.22    安装 Docker

启动一个单节点的Consul服务

consul agent -ui -server -bootstrap -data-dir /var/lib/consul -bind 172.18.0.11 -client 172.18.0.11

在其他服务器分别启动Docker服务

docker daemon -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376  --cluster-store=consul://172.18.0.11:8500 --cluster-advertise=eth0:2376
  • --cluster-store 指定了consul服务发现地址
  • --cluster-advertise 指定了本机服务注册地址,其中eth0是自己网卡的名称,也可以用内网地址172.18.0.21代替

等待自动注册服务

可以使用浏览器打开http://172.18.0.11:8500查看

在node上创建网络

docker network create --driver overlay \
    --subnet=172.18.2.0/24 --gateway=172.18.2.1 vet2

Nginx 实现冷热文件分区读取

  • 10.2.2.2 为热文件服务器,存储1年内上传的文件
  • 10.3.3.3 为冷文件服务器,存储上传超过1年的文件
  • 冷热文件服务器不互通,但都可以响应静态文件网关的请求
upstream host_s1 {
    server 10.2.2.2:443;
    server 10.3.3.3:443 backup;
}

server {

    listen 80;

    server_name s1.rehiy.com;

    location / {
        proxy_pass http://host_s1;
        proxy_connect_timeout 5s;
        proxy_next_upstream_tries 2;
        proxy_next_upstream_timeout 5s;
        proxy_next_upstream error timeout http_404 http_502;
    }

}