寻觅生命中的那一片浅草......

发布者 小牛

ArchLinux搭建TimeMachine

因为netatalk在AUR仓库,所以无法直接使用pacman安装

cd /data/backup/tmp/
git clone https://aur.archlinux.org/netatalk.git
cd netatalk
makepkg -s
sudo pacman -U netatalk-3.1.12-6-armv7h.pkg.tar.xz 
sudo pacman -S avahi
sudo systemctl enable --now avahi-daemon.service

/etc/afp.conf

[Global]
;mimic model = TimeCapsule6,106
log file = /var/log/afpd.log
log level = default:info

[TimeMachine]
path = /data/backup/timemachine 
valid users = timemachine
time machine = yes
vol size limit = 500000

建立用户,目录等

sudo useradd timemachine
sudo passwd timemachine

cd /data/backup/
sudo mkdir timemachine
sudo chown -R timemachine.timemachine timemachine
sudo systemctl enable --now netatalk

参考

VirtualBox虚拟机类型选择错误引起的血案

问题症状

  1. 系统是CentOS 7 64bit
  2. 跑了10+java进程,系统load很高,可以去到100+,系统为16核CPU
  3. top查看,CPU的us time是0.2%,sys time是31.8%
  4. 此时祭出perf top,看到消耗最高的是acpipmread

解决过程

调整VirtualBox的vm配置

Googleacpi_pm_read,得出以下文章

Virtualbox 4.3.4虚拟机上面linux guest的tsc时钟源不可用,降级使用acpipm的问题(导致clockgettime函数和gettimeofday性能变差,debian内核升级等)

经过一番折腾,处理是以下3条指令

VBoxManage.exe setextradata "192.168.2.12" "VBoxnternal/TM/MaybeUseOffsettedHostTSC" 1
VBoxManage setextradata "192.168.2.12" "VBoxInternal/TM/UseRealTSC" 1
VBoxManage setextradata "192.168.2.12" "VBoxInternal/TM/TSCVirtualized" 0

由于我埋头苦干,没有留意到上文已经是考古级别,我们用的virtualbox 6.0,有2个指令已经不起作用,导致vm无法开机,通过以下指令去除配置

VBoxManage setextradata "192.168.2.12" "VBoxInternal/TM/UseRealTSC"
VBoxManage setextradata "192.168.2.12" "VBoxInternal/TM/TSCVirtualized"

此时开机,系统load不高了,但某java进程还是100%,其他java进程则80%+,由于本机是内网开发机,不应该这么高

修改VM类型

同物理机上有另外一台vm,它是正常的,最后经过排查,发现192.168.2.12选择的是windows系统,而另外一台正常的则是Linux,然后我把vm类型修改为Linux,重新开机,稳定后,系统load只有0.x

从来没有想到vm类型影响这么大

旁路路由透明代理

方案优点

需要透明代理上网的客户机不需要任何设置,网关地址都不需要改

环境

  • 主路由 华硕刷梅林固件 192.168.0.1
  • 旁路由 CubieTruck刷的ArchLinux 192.168.0.66
  • 需要透明代理上网的客户机 192.168.0.119

数据走向

192.168.0.119 -> 192.168.0.1 -> 192.168.0.66 -> 192.168.0.1

192.168.0.1设置

# 将进入table 10的数据发去192.168.0.66
ip route add default via 192.168.0.66 table 10

# 设置从192.168.0.119来的数据进入table 10
# 就是让192.168.0.119的数据发去192.168.0.66进行处理
ip rule add from 192.168.0.119/32 table 10

# 查看路由规则
ip rule show

192.168.0.66设置

# 设置数据转发
sudo sysctl -w net.ipv4.ip_forward=1

# 开启v2ray
v2ray -config config.json

# 设置防火墙
sudo /usr/sbin/iptables  -t nat -N V2RAY
sudo /usr/sbin/iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 1060
sudo /usr/sbin/iptables -t nat -A PREROUTING -s 192.168.0.119 -p tcp -j V2RAY

主要参考文章

Xen虚拟机迁移到VMware

由于种种原因,我们之前使用了Xen,但使用起来不是很方便,例如有时物理机上的LVM并不会开机激活等,我们就想着集中迁移到VMware进行集中管理

1 环境说明

  1. Xen虚拟机为全虚拟机化,就是内核是没有修改的,此处主要影响硬件驱动,如果用的是半虚拟化,估计转换后,还要处理下initrd文件
  2. 虚拟机里的系统使用了LVM(特别坑)

2 export to ovf

失败

导出后,在导入VMware的时候,提示

encoding specified in XML declaration is incorrect

对于上述错误,有人在VMware论坛提出了解决方案:Xen -> VirtualBox -> VMware

1)Exported OVF and VHD from Citrix XenCenter

2)Created a new VM in Oracle VirtualBox using as virtual disk the VHD disk exported above. (this step was performed on my desktop pc on which I installed VirtualBox) 

3)Exported OVA from Oracle VirtualBox

4)Imported OVA as an Assembly in vSphere

满心欢喜,进行了16个小时的导出后,在导入的时候,并不行,提示硬件不兼容,放弃

参考:OVA文件导入VMware ESXi出错解决办法

3 P2V

就是用物理机转换为虚拟机的方法,可行

我们在转换的时候,转换工具可以识别到源机的磁盘结构(LVM), 但转换过去后,磁盘大小却不对,结构也是乱的,猜测是LVM导致,这里有提到一个将LVM降级的解决办法,但我们没有试,主要是考虑

  1. 数据安全,将LVM降级,怕有风险
  2. 文章发表时间为2013年,较旧
  3. VMware官方文档也表示转换工具支持LVM

文档地址:Solution for LVM based Linux servers using VMware Converter showing no volumes

下面讲可行的方法

步骤一

在「Optinons」这一步,点击「Data to copy」部分内容,或者点击「Edit」,然后选择「Advanced」,然后去到下图

步骤二

此处选择「Destination layout」,点击「VirtualDisk2」,然后点击「To basic」,就是在目标机器上不使用LVM,只使用普通磁盘分区,此处为关键

至于另外2个「Thin」,则可设置,也可以不设置,设置为Thin就是按需占用,按实际使用分配,而不是一下子就分配所有空间

步骤三

Xen服务器上的虚拟机转成VMware的虚拟机后,发现开机黑屏,最后摸索后发现是grub菜单项有问题导致,在开机的时候,直接修改grub菜单,然后把consolse=hvc0删掉,并在最后加入fastboot,就可以正常启动了

步骤四

由于转换的时候,没有识别到/data,我怀疑是因为它磁盘设备文件是/dev/xvdb导致,一般应该是/dev/xvdb1,所以,我们在开机后,添加新磁盘,然后在线同步一次data,最后,关闭所有服务,再同步要同步的数据,本例中含/var/data,最后换ip,开启服务,迁移完成

2024年四月
« 5月    
1234567
891011121314
15161718192021
22232425262728
2930