概述

Packages required: rose-storage

ROSE - 软件包为RouterOS增加了额外的企业数据中心功能-用于支持磁盘监控、改进的格式化、RAID、rsync、iSCSI、NVMe over TCP、NFS和改进的SMB。该功能目前支持 arm、arm64、x86tile 平台。

属性

属性 说明
iscsi-address
iscsi-export
iscsi-iqn
iscsi-port
nfs-address
nfs-export
nfs-share
nvme-tcp-address
nvme-tcp-export
nvme-tcp-name
nvme-tcp-port
raid-chunk-size
raid-device-count
raid-master
raid-max-component-size
raid-member-failed
raid-role
raid-type
slot
smb-address
smb-export
smb-password
smb-share
smb-user
type

分区

从RouterOS 7.8beta3支持GPT分区。

添加500MB的分区:

/disk

disk add type =partition parent =sata1 partition-size =500M

如果下一个分区被添加,将自动分配到开始的可用空间。

分区也可以用偏移量来添加。

/disk

add type =partition parent =sata1 partition-size =500M partition-offset =10G

如果分区重叠,RouterOS将返回错误。

RAID

RAID(独立磁盘冗余阵列)技术允许把数据存储在多个驱动器上-通过组合成逻辑单元来提高数据传输性能、数据保护或两者兼备。

RAID级别

RouterOS支持软件RAID级别0、1、4、5、6、线性和嵌套RAID。

RAID 0

所有的数据都均匀地写在这个RAID所有的磁盘上,这种配置不提供任何容错,但提供最好的性能。

RAID 1

相同的数据被写入所有的硬盘(数据是镜像的),这种配置提供了最好的容错能力,但是从性能上讲,写入速度与阵列中最慢的磁盘相同。

RAID 4

块级数据被条带化到专用磁盘上,其中存储有奇偶校验位。性能将被限制在奇偶校验的写入速度上。

RAID 5

区块级数据被均匀地分到可用的磁盘上。可以从一个磁盘故障中恢复。

RAID 6

块级数据在可用的磁盘上被均匀地条带化。可以从2个磁盘的故障中恢复。

线性

数据添加在多个磁盘上,并合并为一个大磁盘。不提供冗余,并且仅限于单盘读写速度。

嵌套式RAID

多个RAID配置组合成其他RAID。例如,RAID 10 (RAID 1+0) 结合了磁盘镜像 (RAID 1) 和磁盘条带化 (RAID 0)

RAID配置

在这个例子中,用10个磁盘创建RAID 6。 磁盘必须是相同大小的,或者必须被设置为相同大小的分区,或者使用raid-max-component-size参数来限制更大的卷的大小以匹配其他元素。

理论上,为了优化RAID性能–要用正确的跨度和条带宽度。这些都取决于RAID的 "raid-chunk-size"、文件系统的块大小和磁盘的数量。

stride =raid-chunk-size/block_size

stripe_width =disks*stride

在格式化本地RAID设备时,RouterOS会自动执行。

创建RAID设备。

/disk add type =raid raid-type =6 raid-device-count =10 slot =raid1

在这个RAID中添加磁盘。

/disk set pcie1-nvme1 raid-master =raid1 raid-role =0

/disk set pcie1-nvme2 raid-master =raid1 raid-role =1

/disk set pcie1-nvme3 raid-master =raid1 raid-role =2

/disk set pcie1-nvme4 raid-master =raid1 raid-role =3

/disk set pcie1-nvme5 raid-master =raid1 raid-role =4

/disk set pcie1-nvme6 raid-master =raid1 raid-role =5

/disk set pcie1-nvme7 raid-master =raid1 raid-role =6

/disk set pcie1-nvme8 raid-master =raid1 raid-role =7

/disk set pcie1-nvme9 raid-master =raid1 raid-role =8

/disk set pcie1-nvme10 raid-master =raid1 raid-role =9

其中 pcie1-nvme/* 是本地磁盘插槽名称

强烈建议手动设置 "raid-role "。如果设备以前从未设置过RAID,那么超级区块是空的,RAID-角色将自动假定,如果没有,且该角色已经被占用,那么在使用相同的RAID角色时可能会出现错误。

现在RAID将被同步。

/disk print detail

...

20 bM      type =raid slot = "raid1" slot-default = "" parent =none device = "md0" uuid = "3b4d4ec9-e7413ae8-37e7e397-9cd9152e"

           fs =ext4 model = "RAID5 1-parity-disk" size =8 641 770 946 560 free =8 572 463 624 192 raid-type =5

           raid-device-count =10 raid-max-component-size =none raid-chunk-size =1M raid-master =none

           raid-state = "clean, resync =  1.8% (17498368/937692160) finish=45.2min speed=339148K/sec"

           nvme-tcp-export =no iscsi-export =no nfs-export =no smb-export =no

iSCSI

iSCSI 允许通过基于IP的网络访问存储。在启动器上,iSCSI设备将显示为块设备。RouterOS同时支持目标和启动器模式。

目标(主机)配置。

/disk

set pcie1-nvme1 iscsi-export =yes

发起人(客户):

/disk

add type =iscsi iscsi-address =192.168.1.1 iscsi-iqn =pcie1-nvme1

iscsi-iqn要和目标设备的插槽名称相匹配,iscsi-address是目标地址。

NFS

NFS 允许通过网络共享本地目录。RouterOS目前只支持NFS v4模式。

主机配置。

/disk

set pcie1-nvme1 nfs-export =yes

发起人(客户):

RouterOS

/disk

add type =nfs nfs-address =192.168.1.1

Linux:

mkdir /mnt/files

mount -t nfs 192.168.1.1:/ /mnt/files

SMB

SMB 是流行的文件共享协议。ROSE软件包目前支持SMB2.1 SMB3.0, SMB3.1.1方言(由于安全漏洞,不支持SMB1)。

RouterOS还支持没有ROSE包的旧版SMB– SMB,支持传统的协议。

主机配置:

/disk

set pcie1-nvme1 smb-export =yes

发起人(客户):

/disk

add type =smb smb-address =192.168.1.1 smb-share =pcie1-nvme1

smb-share需要与目标设备上的插槽名称匹配,smb-address是目标地址。

NVMe over TCP

nvme-tcp 允许在启动器侧作为NVMe块设备通过网络访问存储。在目标端,该设备可以是硬盘/ssd/nvme,甚至是raid阵列。

目标(主机)配置:

/disk

set pcie1-nvme2 nvme-tcp-export =yes nvme-tcp-port =4420

发起人(客户):

RouterOS

/disk

add type =nvme-tcp nvme-tcp-address =192.168.1.1 nvme-tcp-name =pcie1-nvme1

nvme-tcp-name要和目标设备上的插槽名称匹配。

Linux

加载内核模块

发现可用的nvme-tcp目标。

nvme discover -t tcp -a 192.168.1.1 -s 4420

Discovery Log Number of Records 1, Generation counter 2

=====Discovery Log Entry 0======

trtype:  tcp

adrfam:  ipv4

subtype: nvme subsystem

treq:    not specified, sq flow control disable supported

portid:  4420

trsvcid: 4420

subnqn:  pcie1-nvme1

traddr:  10.155.166.7

sectype: none

subnqn要和插槽名称相匹配,并作为-n参数使用。:

nvme connect -t tcp -a 192.168.1.1 -s 4420 -n pcie1-nvme1

块设备现在可用:

ls /dev/nvme *

/dev/nvme0  /dev/nvme0n1  /dev/nvme-fabrics

RAMdisk

RAMdisk - 允许使用RAM的一部分作为连接设备(块设备)。与tmpfs相比,它允许把RAM作为raid的一部分,或者其他任何需要设备。

/disk

disk add type =ramdisk ramdisk-size =500M

重启或断电时,RAMdisk将被清空

数据加密

目前RouterOS支持SED(自加密驱动器)和dm_crypt驱动器加密。

自加密驱动器

为了使用SED–硬盘必须是 Opal 兼容的。在购买驱动器之前,请查阅驱动器制造商的文档以了解驱动器是否支持这一功能。 RouterOS为支持的驱动器添加了 o(支持非活动)O(支持活动) 标志。

/disk print

Flags : B - BLOCK-DEVICE; M, F - FORMATTING; o - TCG-OPAL-SELF-ENCRYPTION-SUPPORTED

Columns : SLOT, MODEL, SERIAL, INTERFACE, SIZE, FREE, FS, RAID-MASTER

0 BMo sata1  Samsung SSD 860 2.5in  S3Z9NX0N414510L  SATA 6.0 Gbps  1 000 204 886 016  983 351 111 680  ext4  none

1 BMo sata2  Samsung SSD 860        S5GENG0N307602J  SATA 6.0 Gbps  1 000 204 886 016  983 351 128 064  ext4  none

2 BMO sata3  Samsung SSD 860        S5GENG0N307604H  SATA 6.0 Gbps  1 000 204 886 016  983 351 128 064  ext4  none

3 BMO sata4  Samsung SSD 860 2.5in  S4CSNX0N838150B  SATA 6.0 Gbps  1 000 204 886 016  983 351 128 064  ext4  none

设置TCG-OPAL-SELF-ENCRYPTION方法:

/disk

disk set sata1 self-encryption-password =securepassword

设置:

/disk

disk unset sata1 self-encryption- password

/disk

disk set sata1 !self-encryption- password

块设备加密

文件同步

ROSE软件包还包括文件上传/下载和同步工具。 同步(推送)本地文件夹内容到其他RouterOS设备:

/ file sync add local-path =pcie1-nvme1/myfolder/ remote-addrs =192.168.1.1 mode =upload user =admin password = "" remote-path =test/

user/password - 其他设备的用户名和密码。互连时Winbox端口要打开。

或用命令拉取文件:

/ file sync add local-path =pcie1-nvme1/myfolder/ remote-addrs =192.168.1.1 mode =download user =admin password = "" remote-path =test/

文件夹现在可以同步了,所有对文件的修改都会在设备之间同步。

文件夹不要下载和上传到同一个目标,避免未定义的行为。