diff --git a/pages/_assets/file/p440ar-ctrl-benchmark/fio-hba.tar.gz b/pages/_assets/file/p440ar-ctrl-benchmark/fio-hba.tar.gz
new file mode 100644
index 00000000..84fe3aac
Binary files /dev/null and b/pages/_assets/file/p440ar-ctrl-benchmark/fio-hba.tar.gz differ
diff --git a/pages/_assets/file/p440ar-ctrl-benchmark/fio-raid0.tar.gz b/pages/_assets/file/p440ar-ctrl-benchmark/fio-raid0.tar.gz
new file mode 100644
index 00000000..2ba3ac24
Binary files /dev/null and b/pages/_assets/file/p440ar-ctrl-benchmark/fio-raid0.tar.gz differ
diff --git a/pages/_posts/p440ar-ctrl-benchmark.md b/pages/_posts/p440ar-ctrl-benchmark.md
new file mode 100644
index 00000000..5a095d1f
--- /dev/null
+++ b/pages/_posts/p440ar-ctrl-benchmark.md
@@ -0,0 +1,74 @@
+---
+title: P440ar Array Controller 直通评测
+tags:
+ - HP
+ - HBA
+ - RAID
+ - ZFS
+categories:
+ - 搞机
+layout: post
+date: 2022-03-26
+---
+
+最近到了一批`HPE DL560 G9`的机器,默认带的是[P440ar](https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04496202)的卡。但是目前我们都是用的ZFS,所以一般来说我们都会把卡刷成`IT Mode`直通给系统。
+
+戴尔的卡已经有[很成熟的教程](https://fohdeesha.com/docs/index.html)了,但是HP似乎都没有,目前可以选择的方案看了一圈只有
+
+- HBA Mode,他们的卡自带了这个模式
+- RAID 0 for each physical drive,我没想到的是他们界面直接就有这个选项,看来很多这样的需求
+
+但是继续找了一下并没有看到有关于更多ZFS的评测,所以这里就记录一下目前收集到的信息
+
+## 规格
+
+### 硬盘
+
+硬盘是`2.5 inch Seagate 1TB 7200 RPM`,具体信息:
+
+```
+Status: OK
+Serial Number: 9XG6E9NN
+Model: ST910006CLAR1000
+Media Type: HDD
+Capacity: 1000 GB
+Firmware Version: AS0D
+Encryption Status Not Encrypted
+```
+
+### 控制器
+
+控制器读缓存开启,写缓存关闭
+
+## 测试
+
+### 脚本
+
+使用的是[fio](https://github.com/axboe/fio),配合脚本
+
+
+
+### RAID 0 结果
+
+fio-raid0.tar.gz
+
+### HBA 结果
+
+fio-hba.tar.gz
+
+## 结论
+
+目前测试出来单盘的情况下,HBA和Raid0的结果在512K的读写下很相近,但是HBA模式表现似乎要更好一点。
+
+所有结果都打包在上面,有需要的可以自行下载研究。如果有更多测试/模式想要测试,可以在评论区留言
+
+
\ No newline at end of file
diff --git a/saber-node.js b/saber-node.js
index 2cc1b5b2..71e9473e 100644
--- a/saber-node.js
+++ b/saber-node.js
@@ -1,15 +1,20 @@
const webpack = require('webpack')
-exports.chainWebpack = function(chain) {
+const fileLoaderExt = (names, chain) => {
chain.module
- .rule("pdf")
- .test(/\.pdf$/)
- .use("pdf")
+ .rule("file load path")
+ .test(new RegExp(`\.(${names.join('|')})$`))
+ .use("file load path")
.loader("file-loader")
.options({
- name: "[name].[ext]",
+ name: "[path][name].[ext]",
});
- chain.module
+}
+
+exports.chainWebpack = function(chain) {
+ fileLoaderExt(["pdf", "tar.gz"], chain)
+
+ chain.module
.rule("cool")
.test(/\.cool$/)
.use("cool")
diff --git a/yarn.lock b/yarn.lock
index f6138629..26bd935d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1240,17 +1240,7 @@ ajv-keywords@^3.5.2:
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
-ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0:
- version "6.12.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
- integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-ajv@^6.12.5:
+ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.5:
version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -2769,9 +2759,9 @@ fast-deep-equal@^2.0.1:
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-deep-equal@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
- integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
@@ -6265,9 +6255,9 @@ upath@^1.1.1:
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
uri-js@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
- integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"