Memo

共 7 条

通过 SSH 迁移 btrfs volumes

配置 SSH 免密:

ssh-copy-id -i ~/.ssh/id_ed25519.pub <user>@<host>

在目标端配置 sudo 免密:

https://serverfault.com/questions/160581/how-to-setup-passwordless-sudo-on-linux

%wheel ALL=(ALL:ALL) NOPASSWD: ALL

The key is to add it after the last line which says

#includedir /etc/sudoers.d

创建快照:

# sudo btrfs subvolume snapshot -r <fs-path> <snapshot-path>
sudo btrfs subvolume snapshot -r / /sysfs_ro

发送:

sudo pacman -S pv
# sudo btrfs send <snapshot-path> | pv | ssh <target-machine> "sudo btrfs receive <target-fs-path>"
sudo btrfs send /sysfs_ro | pv | ssh target-host "sudo btrfs receive /mnt/arc"

# 发送完成后,路径是 /mnt/arc/sysfs_ro

ESXi 7.0 安装时移除 VMFSL

在 ESXi 7.0 之后,安装的时候会自动创建一个很大的 VMFSL 分区:

vmfsl-example.png

安装 ESXi 时,在引导后按 Shift+O,并输入

autoPartitionOSDataSize=8192

然后回车,正常安装即可。

Seagate TurboBoost and Advanced Write Caching

传统的 HDD 以较慢的响应时间来应对较高的工作负载

  • 在 200 IOPS 时,硬盘阵列可能提供 5 毫秒的响应
  • 在 600 IOPS 时,延迟可能飙升至 40 毫秒甚至更高。

TurboBoost

TurboBoost 是在传统硬盘中加入 NAND 闪存,集成了

  • 传统的多段式缓存
  • 少量的 eMLC NAND,其特点是比消费级 MLC 的耐用性要强得多

适量的 NAND 能够满足价值需求,以足够低的成本提供最大的性能优势

76d4e14c25b23afca9840d8ce905fbd3.png

NVC:non-volatile cache

Back electromotive force(back EMF)指与电机线圈在磁场中运动产生的电流方向相反的电压。HDD 可以在断电后立即利用反电动势,将 DRAM 中的数据写入 NVC Flash 中。有了 NVC 保护的写缓存,在享受到性能好处的同时,仍然可以与关闭 write cache 同等的保护。

内置的 NOR Flash 大小:2M

5b267ab31853330f53d9e3be9dab501f.png

dm-delay 模拟慢速磁盘

速查

# 创建一个 10G 大小的 ram disk
sudo modprobe brd rd_nr=1 rd_size=1048576
sudo blockdev --getsize /dev/ram0

# 创建 delayed dm,延迟为 500ms
export RAM_SIZE=$(blockdev --getsize /dev/ram0)
echo "0 $RAM_SIZE delay /dev/ram0 0 500" | sudo dmsetup create delayed

# 重新加载参数
echo "0 $RAM_SIZE delay /dev/ram0 0 500" | sudo dmsetup reload delayed

delayed 参数

<device> <offset> <delay> [<write_device> <write_offset> <write_delay> [<flush_device> <flush_offset> <flush_delay>]]

暂停 I/O

sudo dmsetup suspend /dev/dm-0
sudo dmsetup resume  /dev/dm-0

检查 delayed 设备的 I/O 延迟

fio --name a --filename=/dev/dm-0 --bs=4k --rw=randread --ioengine=libaio --direct=1 --iodepth=1 --numjobs=1 --time_based=1 --runtime=10
fio --name a --filename=/dev/dm-0 --bs=4k --rw=randread --ioengine=sync --direct=1 --iodepth=1 --numjobs=1 --time_based=1 --runtime=10

Kopia 配置文件位置

  • Windows: %APPDATA%\kopia\repository.config
  • macOS: $HOME/Library/Application Support/kopia/repository.config
  • Linux: $HOME/.config/kopia/repository.config

迁移 Kopia 快照

kopia snapshot migrate --source-config ./repository.config --all

系统编程资料