首页
Search
1
v2ray异常错误之二
3,310 阅读
2
linux时区设置
2,698 阅读
3
DB2常用操作
2,173 阅读
4
websphere修改jvm内存xmx和xms
1,929 阅读
5
nfs客户端文件属主为nobody的现象
1,552 阅读
技术
生活
运动
游戏
电影
登录
Search
标签搜索
docker
linux
troubleshooting
nginx
secure
truenas
mysql
windows
python
esxi
docker swarm
oracle
zabbix
tomcat
blog
dsm
群晖
rpa
freenas
db
yuc
累计撰写
291
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
运动
游戏
电影
页面
搜索到
13
篇与
的结果
2024-08-01
TrueNAS zfs raidz扩展磁盘expand
背景 在使用 TrueNAS 4年后的今天,终于迎来了存储池空间使用率超过了90%,存储池是使用的 10 块 2T 做的 raidz3,即可以损失任意3块盘仍然保证数据安全,剩余的空间计算为 (10-3) x 2T = 14T,实际最大可用空间 11.98T,而现在剩余可用空间不足 1T 扩容问题 手头上刚好有一块 2T 的磁盘,是否可以加进去直接扩展空间呢? 尝试在池中加入新盘,提示需要添加 5块 硬盘,实在难以理解为何一次扩容需要5块盘,因为之前玩群晖组raid6扩展还是相当方便的,基本上新增一块、两块扩展空间都可以。 所以根据这个特殊的要求,我查阅了一些资料,才发现问题不止是扩展需要5块硬盘那么简单,最少要5块是会在此池中新建一个vdev组,它具有此池相同的raidz功能,所以raidz3最低的要求是5块新盘,但它不会扩展到原有的空间,那这个方案是相当浪费空间的 于是我查询了一些关于raidz、zfs扩展的资料,截至到2024.08.01最新的资料如下: # 12楼 https://www.truenas.com/community/threads/raidz-expansion-best-method-when-increasing-disks-and-replacing-with-larger-at-same-time.105448/ # 4楼 https://www.truenas.com/community/threads/adding-a-drive-to-a-raidz1-pool.111805/ # 正规文档关于之前是如何扩展的(新建一个vdev) https://openzfs.org/wiki/OpenZFS_Developer_Summit_2023_Talks#RAIDZ_Expansion_(Matt_Ahrens_&_Don_Brady) # 关于解决方案和其他的一些讨论 https://www.truenas.com/community/threads/adding-disk-to-raidz1.111375/ # 关于扩展以及扩展后数据分布的讨论 https://github.com/openzfs/zfs/pull/15022 # 关于扩展以及数据分布的讨论后续 https://github.com/openzfs/zfs/discussions/15232 关于上面的讨论,大概在今年底 TrueNAS 可以集成这一功能,但不知道能否解决数据分布问题,raidz 与 raid 完全不同,其扩展后不会重新分布数据,导致原数据与新数据盘符存储不同,推荐的方法是,删除原数据重新创建,则会以新盘的数量重新分布 PS. 其他的解决方案 较推荐的是把原硬盘一个一个更换更大的盘,每更换一个则等到同步完成再继续,等所有硬盘更换后会自动扩展空间 新建一个更大的池,然后把数据同步过去
2024年08月01日
10 阅读
0 评论
0 点赞
2024-01-29
Truenas Scale 容器的使用
0x1 其他 容器的用法基本上都是大同小异,这里只根据界面和注意事项简单的说明一下: 拉取镜像在设置 'Manage Container Images' 中即可 容器支持的环境变量在创建中 'Container Environment Variables' 设置 如果需要最大权限则勾选 'Privileged Mode' 容器需要的一些特殊的 CAP 可以在 'Capabilities' 中添加 最后重点说一下网络: 如果是想使用默认的映射端口,那么网络中就选择默认的接口就行了,本机网络也不需要做设置,然后在 'Port Forwarding' 中设置端口映射关系 如果想给容器一个本网段的IP,有些服务是需要这样的,比如FTP,NFS等具有多个端口、多次建立链接的服务,或者其他对NAT容忍性低的服务,这样最好直接暴露容器到外部。所以需要在本机新建一个桥接网络,桥接默认的接口,之后网络中选择这个桥接,选择设置静态ip,设置一个宿主机同网段的ip了,最后我们可以进入容器中进行确认
2024年01月29日
8 阅读
0 评论
0 点赞
2024-01-29
Truenas Jail和容器的选择
0x1 问题背景 考虑使用这些的原因是NFS的问题,在Truenas Core某个时间后,NFS的挂载经常报IO错误,但是文件实际上在NAS上是可以正常读写的,详细的排查见其他帖子,并且这个问题最终也没有结论。但规避方法是,采用虚拟机、jail、容器等方式拆分整个NFS,使得每个NFS server只需要负责一部分的文件,减小互相影响 0x2 优劣势 虚拟机:占用资源比较多,如果后续需要多个NFS或者其他服务,那么势必会占用一部分当前的 zfs arc 的空间 jail:这个是freebds的一个虚拟化工具,在性能、功能上貌似比较强大,本想尝试一下,但是资料太小,并且到底能否是否NFS server也没有找到可靠的资料 容器:基本上平衡了性能,功能的问题,最终还是选择使用它了 0x3 Truenas容器 查询了一些资料,发现Truenas Core是基于freebds的类unix系统,不支持docker或者其他容器,如果要使用容器则需要换成Truenas Scale,这是前几年基于Linux发行的版本,相对于Core版本有更多的应用扩展了,还好我们目前没有在Truenas上有过多的应用,所以按照升级方案处理即可 在升级后可以看到Truenas Scale是自带容器的,不过貌似是精简版的k3s,更多详细的功能参考其他文档
2024年01月29日
1 阅读
0 评论
0 点赞
2023-12-19
Truenas scale 配置多个nfs server
0x1 问题背景 以前truenas core自带的nfs服务,分别共享了 docker swarm 的共享目录(2.7T),jenkins 数据目录(280G),seafile 数据目录(900G)。这三个目录非常多的小文件,甚至在统计目录大小的时候,十来分钟都无法出结果 也许是这个原因,默认的nfs服务共享了多个超多小文件的目录,以及共享到了多台机器。导致经常出现 INPUT/OUTPUT error,现象如下: 客户端挂载参数: 192.168.10.16:/mnt/dev1/jenkins on /var/jenkins_home type nfs4 (rw,noatime,nodiratime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.3.106,local_lock=none,addr=192.168.10.16,_netdev) 创建新文件直接报错,但是创建目录没有问题 [root@localhost 123]# touch 1122 touch: cannot touch ‘1122’: Input/output error [root@localhost 123]# touch 2233 touch: cannot touch ‘2233’: Input/output error [root@localhost 123]# touch 3344 touch: cannot touch ‘3344’: Input/output error [root@localhost 123]# mkdir 1122 [root@localhost 123]# mkdir 2233 [root@localhost 123]# mkdir 3344 [root@localhost 123]# touch 4455 touch: cannot touch ‘4455’: Input/output error [root@localhost 123]# touch 5566 touch: cannot touch ‘5566’: Input/output error 重新客户端挂载,会正常一会儿,但是有一会儿又不行了 [root@localhost 123]# cd [root@localhost ~]# umount /var/jenkins_home/ [root@localhost ~]# mount -a [root@localhost ~]# cd /var/jenkins_home/123/ [root@localhost 123]# touch 1111 [root@localhost 123]# touch 2222 [root@localhost 123]# touch 3333 [root@localhost 123]# touch 4444 [root@localhost 123]# touch 5555 touch: cannot touch ‘5555’: Input/output error [root@localhost 123]# touch 6666 touch: cannot touch ‘6666’: Input/output error [root@localhost 123]# touch 1111 [root@localhost 123]# touch 2222 [root@localhost 123]# touch 3333 [root@localhost 123]# touch 4444 [root@localhost 123]# touch 5555 touch: cannot touch ‘5555’: Input/output error [root@localhost 123]# touch aaaa touch: cannot touch ‘aaaa’: Input/output error [root@localhost 123]# touch bbbb touch: cannot touch ‘bbbb’: Input/output error [root@localhost 123]# mkdir 5555 [root@localhost 123]# mkdir 6666 抓包发现很多过期的告警,很明显是不正常的,nfs的会话正常也不应该创建、列出一下就会有多个过期的响应 这个问题尝试了很多方案,使用不同的nfs版本挂载,把一部分数据迁移到其他的池以减少单个池的读写或者文件数量,但结果仍然不行。所以最后怀疑是Truenas core的nfs问题,有可能小文件太多性能不足、有可能多个nfs目录对应多个不同的客户端(网络传输过程中客户端ip识别有问题,导致会话过期)等,所以最后下定决心使用多个nfs server来解决这个问题 0x2 目标和方案 目标: 每个需要共享的数据集目录使用单独的nfs server,以单独维护每个共享目录,以及减少单个共享目录访问的客户端ip,以及文件并发
2023年12月19日
2 阅读
0 评论
0 点赞
2023-12-18
truenas 链路聚合LACP
0x1 优点 Truenas使用链路聚合可以叠加带宽、增加链路冗余,有利于提升nas的性能 0x2 配置 链路聚合需要对端设备支持,所以首先要在交换机配置好对应端口的LACP 新建一个网络类型,选择链路聚合,协议 LACP,策略、速率默认,然后选择对应的端口即可,最后把ip从原接口拿掉,配置到下面的别名即可(与桥接类似) 0x3 测速 经过简单的测速,多台同交换机同时传文件到NAS上,可以看到NAS监控上最高速率约为 1.8Gb/s,对于3网口链路聚合来说稍微有点低,不过也算是提升了,可能跟线路质量等方面有一定关系
2023年12月18日
2 阅读
0 评论
0 点赞
1
2
3