Truenas Scale踩坑——虚拟机部署

简介

上一篇文章介绍了共享数据集与数据保护的一些小设置,这一期介绍一些与虚拟机相关的设置。

虚拟机网络配置

为什么网络不互通

在创建虚拟机时,我们会为虚拟机分配一张虚拟网卡,我们可以选择将虚拟网卡连入哪一个物理网口。但是实际这么操作之后,虚拟机虽然有网了,但是我们会发现,虚拟机是无法与宿主机建立连接的。这是因为虚拟机通过macvlan绑定在物理网口上,无需经过宿主机进行外部通信,宿主机无法在ip层取得虚拟机的流量。因此理论上来说,在宿主机对虚拟机发出回报时,报文的下一跳将被设置为宿主机(宿主机不知道可以直接从本机转发到虚拟机),并交由物理网卡转发至外部再回弹,最后重复这个过程,导致流量回环现象。
这里举个例子,假设虚拟机为131,宿主机为8。以下为流程:
(1.目标131,下一跳为8)->(2.到达8,目标131,下一跳为8)->(3.到达8,目标131,下一跳为8)…

1
2
3
traceroute 192.168.31.131 #在宿主机192.168.31.8上对虚拟机192.168.31.131发出报文
# traceroute to 192.168.31.131 (192.168.31.131), 30 hops max, 60 byte packets
# 1 192.168.31.8 (192.168.31.8) 3066.160 ms !H 3066.143 ms !H 3066.138 ms !H 可以看到需要经过192.168.31.8

可以看到,如果你想通过ip将8的报文转发到131,那么你就要经过8,而你到达8的时候,你的下一跳还是8。macvlan对这种情况进行了网络隔离,虚拟机发出的流量不能再回到宿主机,因此我们的虚拟机不能直接通过物理网卡与宿主机进行通信。
那么如何解决这个问题呢?

Read more
Truenas Scale踩坑——共享数据集与数据保护

简介

作为一个NAS系统,Truenas Scale虽然功能强大,为我们提供了优雅的ZFS支持,但显然不是一个开箱即用的方案。Truenas的官方文档(https://www.truenas.com/docs/scale/scaletutorials) 中已经介绍了大部分基础的操作,已经足够大部分人用上这个系统。不过在使用的过程中仍然会出现一些不影响系统运行,但是让人很难受的小问题,这里分享一下我的解决方案。

Read more
使用ZeroTier进行异地组网

家庭网络与IPV4的困境

随着技术水平的提升,各种需求开始出现,家里也出现了成堆NAS软路由之类的电子垃圾。又很不巧,这堆电子垃圾还需要经常访问它们的服务,保持与它们的连接。在家里使用局域网的环境还好,但是走出家门,马上就出现了一个《小问题》——你要怎么找到自家设备呢。

如果你有一个IPV4公网地址,这个问题当然就简单了,你的网关接到自家的路由器,让它帮你转发所有到局域网的请求。当然也有别的方案,端口转发和NAT之类,这里不再赘述。

那如果你没有IPV4公网地址呢?众所周知,国内的宽带运营商可是不会给你提供公网IPV4的地址的。那这个简单的问题一下就变成了一个技术问题。据我所知,现在一般有3种解决方案:公网IPV6、内网穿透和异地组网。三种方案我都踩过坑了,因此在这里都简要介绍一下。

Read more
深度学习从入门到放弃:cs231n(2)-线性分类

线性分类(Linear Classification)

我们将要实现一种更强大的方法来解决图像分类问题,该方法可以自然地延伸到神经网络和卷积神经网络上。这种方法主要有两部分组成:一个是评分函数(score function),它是原始图像数据到类别分值的映射。另一个是损失函数(loss function),它是用来量化预测分类标签的得分与真实标签之间一致性的。该方法可转化为一个最优化问题,在最优化过程中,将通过更新评分函数的参数来最小化损失函数值。

评分函数

线性分类的第一个部分就是一个评分函数, 用于将输入的图像转换为各个分类上的评分.

$$
f(x,W)
$$

x是输入的图片拉伸出的D维列向量([D*1]), 分类共有N个, W是经过训练计算出的参数(权重), 是一个[N*D]的矩阵. 那么, 计算出的$f(x,W)$就会是一个N维列向量([N*1]), 向量的每一个分量就是每一个分类的评分.

Read more
深度学习从入门到放弃:cs231n(1)-K-NN分类器

图像分类

所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像。这是计算机视觉的核心问题之一。

语义鸿沟(Semantic Gap)

在基于内容的图像查询中, 存在一个底层特征和上层理解之间的差异.人是通过对语义的理解, 提取图片的信息, 判断两张图片的相似性, 而计算机”看”到却是由像素组成的巨大的数字阵列, 不能从中直接提取出语义信息.我们人对语义标签的理解和计算机存在差异, 这个问题叫语义鸿沟.

Read more
Rime-中州韵输入法的配置和使用

简介

RIME/中州韻輸入法引擎,是一個跨平臺的輸入法算法框架。
基於這一框架,Rime 開發者與其他開源社區的參與者在 Windows、macOS、Linux、Android 等平臺上創造了不同的輸入法前端實現。

Rime, 它是一个好输入法:

  1. 简洁, 清爽, 无广告.
  2. 极度多样的定制选项, 几乎能够实现所有能打出中文的输入方案 (虽然我做不出来).

作者自己是这么写的:

當然,因爲您理想中的輸入方式千奇百怪、也許從沒有人那樣玩過,所以不可能在那種勾勾選選的介面上做得出來;需要親手來創作——
Rime 輸入方案!

Read more
使用Hexo+Github Page搭建博客

简介

看了各种搭建博客的方案, 对比了一下各种选项, 最后选择了Hexo+Github Page.

什么是 Hexo?
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

What is GitHub Pages?
GitHub Pages is a static site hosting service designed to host your personal, organization, or project pages directly from a GitHub repository.

Read more