0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用構(gòu)建Raspberry Pi驅(qū)動(dòng)的NAS服務(wù)器—附加收獲:HURRiCANE冷卻系統(tǒng)!

靚仔峰 ? 來(lái)源:DevicePlus ? 作者:DevicePlus ? 2023-02-24 17:32 ? 次閱讀

這篇文章來(lái)源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。

目錄
1 簡(jiǎn)介
1.1 適用的網(wǎng)絡(luò)附屬存儲(chǔ)
1.2 啟動(dòng)并運(yùn)行自己的NAS
1.2.1 磁盤(pán)設(shè)置
1.2.2 NAS服務(wù)
1.2.3 磁盤(pán)和網(wǎng)絡(luò)性能

2 附加收獲:Raspberry Pi “HURRiCANE!”冷卻系統(tǒng)
2.1 BOM
2.2 項(xiàng)目完成!

1 簡(jiǎn)介

多年來(lái),許多計(jì)算機(jī)愛(ài)好者都會(huì)向?yàn)樵O(shè)計(jì)供大眾使用的Pi而辛勞工作的工程師們哭訴:“USB3有了嗎?USB3快點(diǎn)出來(lái)吧,拜托了!”。Raspberry Pi 3 B+幾乎是完美的微型計(jì)算機(jī),但是仍然不適用于網(wǎng)絡(luò)附屬存儲(chǔ)(NAS),或者快速USB,甚至USB。由于以太網(wǎng)連接受限而出現(xiàn)的鍵盤(pán)輸入滯后現(xiàn)象就是不良反應(yīng)之一。

如果您的祖母打電話(huà)給您,問(wèn)如何將她的老照片以“現(xiàn)代潮流的方式”進(jìn)行數(shù)字化,您會(huì)怎么做呢?她只是想能夠在新型iPad上流暢地瀏覽這些照片,因?yàn)樗氖种敢呀?jīng)沒(méi)有那么大的力氣去翻閱笨重的相冊(cè)來(lái)重溫那些飽含著珍貴回憶的柯達(dá)照片了?,F(xiàn)在,她要開(kāi)始迎接使用科技產(chǎn)品的新生活。

但是,本文并不是專(zhuān)門(mén)針對(duì)數(shù)字化照片而寫(xiě)的。我們這里將要介紹的是有關(guān)存儲(chǔ)的內(nèi)容:簡(jiǎn)單、快速的網(wǎng)絡(luò)存儲(chǔ)。

1.1 適用的網(wǎng)絡(luò)附屬存儲(chǔ)

首先,任何能夠在網(wǎng)絡(luò)上存儲(chǔ)數(shù)據(jù)并為用戶(hù)提供服務(wù)的功能都可以稱(chēng)為網(wǎng)絡(luò)附屬存儲(chǔ)(NAS)。但是,該功能的實(shí)現(xiàn)是以一種用戶(hù)友好的、流暢且不會(huì)對(duì)用戶(hù)造成困擾的方式進(jìn)行的。

例如,我的Android盒子里有KODI。它的速度不太快,并且microSD里裝滿(mǎn)了舊的數(shù)據(jù)。但是,在我安裝了KODI插件從而連接到本地網(wǎng)絡(luò)上的Samba服務(wù)器之后,觀看電影和播放音樂(lè)就都十分流暢了。它在容納千兆位音頻資源的同時(shí),僅用了幾分鐘的時(shí)間就完成了我的舊路由器(包含未知固件)的設(shè)置,以處理從插入的USB2硬盤(pán)中獲取的數(shù)據(jù)。這就是NAS,但它是比較差的NAS。我們可以做得更好一些。

優(yōu)質(zhì)的NAS具有穩(wěn)定、可快速傳輸數(shù)據(jù)、延遲少的特點(diǎn),且具有冗余性(例如RAIDI),在系統(tǒng)運(yùn)行時(shí)可以支持磁盤(pán)的熱交換,并且提供了用于訪問(wèn)所存儲(chǔ)數(shù)據(jù)的少量協(xié)議。如FTP,SMB/CIFS,NFS和AFP等現(xiàn)在常用的協(xié)議。多年來(lái),我一直在尋找一種性能優(yōu)于USB2和100Mbit/s,且具有足夠的CPU能源和RAM來(lái)承載所有服務(wù)內(nèi)容的低耗能系統(tǒng)。我對(duì)具有出色的SATA 端口的Cubieboard 2十分有興趣,但是Armbian對(duì)我來(lái)說(shuō)實(shí)在太陌生了。

當(dāng)所有希望都變成絕望的時(shí)候,Raspberry Pi 4發(fā)布了,它具有四核1.5GHz CPU,1/2/4GB DDR4 RAM,真正的千兆以太網(wǎng)和USB 3.0。您再也不會(huì)因?yàn)橐蕴W(wǎng)端口被USB2總線阻塞而被迫使用Wi-Fi了。它具有雙microHDMI端口,不過(guò)對(duì)性能來(lái)說(shuō)無(wú)功無(wú)過(guò)。

我現(xiàn)在需要一臺(tái)小型的臺(tái)式微型計(jì)算機(jī), 來(lái)驗(yàn)證其是否能夠在處理一些較大的網(wǎng)絡(luò)傳輸負(fù)載的同時(shí)還可以可靠地運(yùn)行。

我用這種方式對(duì)Raspberry Pi 4進(jìn)行了測(cè)試,并且測(cè)試成功了。當(dāng)然,會(huì)產(chǎn)生發(fā)熱的問(wèn)題。在卸載后,該微型計(jì)算機(jī)會(huì)通過(guò)自發(fā)熱來(lái)進(jìn)行調(diào)節(jié)。加載時(shí),它的系統(tǒng)溫度將會(huì)迅速達(dá)到176華氏度,這時(shí)候計(jì)算機(jī)并沒(méi)有死機(jī)或者壞掉,也沒(méi)有冒出什么奇特的煙霧,它只是變成了一個(gè)無(wú)法使用的紙壓——以600MHz的頻率運(yùn)行。但是,有一個(gè)方法可以解決這個(gè)問(wèn)題,就如您將會(huì)在第2部分看到的那樣,使用一種破解版GPIO控制的功率小于或等于45瓦的散熱風(fēng)扇。

盡管有過(guò)熱問(wèn)題,這款Pi還是非常適合于家庭/工作組NAS,并且2.5″的USB3硬盤(pán)足夠了。如果您希望能夠獲得最佳性能,建議您在磁盤(pán)托架中安裝一個(gè)12V 3.5″的驅(qū)動(dòng)器,而不是只用一根線纜的2.5″驅(qū)動(dòng)器。我的2.5″USB驅(qū)動(dòng)器使用一根線纜,最大功率為4.48W,所以如果您選擇了不帶外部電源的2.5″驅(qū)動(dòng)器,那么肯定需要為您的Pi提供15W的電源。

1.2 啟動(dòng)并運(yùn)行自己的NAS

讓我們來(lái)構(gòu)建一個(gè)Raspberry Pi 4 NAS吧!

請(qǐng)注意,如果您使用的是較早的Pi型號(hào),仍然可以按照本文中的說(shuō)明進(jìn)行操作,不過(guò)Pi 2是最低要求。在Pi 3上,您應(yīng)該通過(guò)Wi-Fi接口傳輸文件,因?yàn)檫@樣更快!

首先要做的是對(duì)Pi進(jìn)行設(shè)置。按照此處的說(shuō)明進(jìn)行操作,您將會(huì)很快實(shí)現(xiàn)Pi的啟動(dòng)和運(yùn)行。我們假設(shè)您已經(jīng)準(zhǔn)備好外部硬盤(pán)驅(qū)動(dòng)裝置了。這里需要注意的一點(diǎn)是,如果是在Slashdot上,相信馬上就會(huì)引發(fā)一場(chǎng)關(guān)于“btrfs”(或者那些完美主義者所堅(jiān)持的寫(xiě)法“Btrfs”)優(yōu)點(diǎn)的討論。我使用過(guò)它,也使用過(guò)ZFS。除非您想要拍快照,不然無(wú)論是btrfs還是ZFS都是無(wú)關(guān)緊要的,對(duì)于家庭/工作組NAS也是如此。這是一個(gè)磁盤(pán)的單獨(dú)設(shè)置,您絕對(duì)應(yīng)該使用ext4,這很酷。

對(duì)您的系統(tǒng)進(jìn)行更新。將以下指令復(fù)制并粘貼到您的Pi終端。





export DEBIAN_FRONTEND DEBIAN_PRIORITY DEBCONF_NOWARNINGS
apt update || e c h o "[!] Failed to update index lists!"
dpkg --configure -a || e c h o "[!] Failed to fix interrupted upgrades!"
apt --fix-broken --fix-missing install || e c h o "[!] Failed to fix conflicts!"
apt -y --allow-downgrades --fix-broken --fix-missing dist-upgrade

然后重新啟動(dòng),運(yùn)行以下指令,這將會(huì)安裝ProFTPd,Samba,一個(gè)密碼生成器,SMB/CIFS的客戶(hù)端以及用于實(shí)現(xiàn)簡(jiǎn)單GPIO控制的WiringPi。


sudo apt-get -y install proftpd samba pwgen smbclient wiringpi

1.2.1 磁盤(pán)設(shè)置

如果您不是一個(gè)極簡(jiǎn)主義者,那么您很可能使用的是Pi上的圖形用戶(hù)界面。如果是這樣,請(qǐng)按照以下說(shuō)明設(shè)置磁盤(pán)。注意:請(qǐng)牢記您打算設(shè)置的磁盤(pán),而不是對(duì)連接的microSD卡或者任何您不打算修改的磁盤(pán)進(jìn)行設(shè)置。

如果您選擇僅安裝Raspbian Lite(沒(méi)有圖形用戶(hù)界面),則可以使用“cfdisk”對(duì)磁盤(pán)進(jìn)行設(shè)置。確保沒(méi)有其他USB驅(qū)動(dòng)器連接到您的Pi后,我們就可以將其稱(chēng)為“sda”了。將USB驅(qū)動(dòng)器插入您的Pi,打開(kāi)一個(gè)終端窗口,然后發(fā)送指令:“sudo cfdisk /dev/sda”。

poYBAGPzH6CAMCO5AABHuRDHfA0074.jpg

選擇 “dos”。

pYYBAGPzH6KAaqd5AACEvQJY9Vc177.jpg

如果已經(jīng)有了一個(gè)分區(qū),選擇“Delete(刪除)”。然后,選擇“New(新建)”。或者可以直接選擇“New(新建)”。其類(lèi)型將會(huì)是“Linux”,如下圖所示。使用驅(qū)動(dòng)器上的所有可用空間。

pYYBAGPzH6SARinBAAC03pgusC0998.jpg

使用箭頭鍵將高亮區(qū)移動(dòng)到“Write(寫(xiě)入)”的地方,并在出現(xiàn)提示對(duì)話(huà)框時(shí)點(diǎn)擊“yes(是)”。然后,將高亮區(qū)移動(dòng)到“Quit(退出)”的地方,按回車(chē)鍵。

回到提示對(duì)話(huà)框,讓我們稍事休息,思考一下。在一個(gè)沒(méi)有承載任何系統(tǒng)文件的文件系統(tǒng)上,我們是否要為“root”用戶(hù)保留磁盤(pán)空間的5%,甚至10%?畢竟這不是“/var”或者“/”。

不需要。我們希望所有的可用空間都被用于奶奶的照片數(shù)字化工作以及媒體/工作組的數(shù)據(jù)。mkfs.ext4的“-m”用于設(shè)置為“root”用戶(hù)保留的空間?!?L”用于設(shè)置磁盤(pán)名稱(chēng),您可以將其設(shè)置為任意名稱(chēng)。如果有疑問(wèn),可以使用“FOO”進(jìn)行查詢(xún)。現(xiàn)在,發(fā)出指令:


sudo mkfs.ext4 -L FOO -m 0 /dev/sda1

稍后,您的日志文件系統(tǒng)就在“/dev/sda1”上準(zhǔn)備好了。

poYBAGPzH6eAVUofAADnxeljNu0666.jpg

您可以將其掛載在任意位置,但是我們還是為NAS創(chuàng)建一個(gè)用戶(hù)吧。我們稱(chēng)他為“nas”。我們將他的私人目錄設(shè)置為在任何地方都可寫(xiě)且可粘滯??烧硿聪瘛?tmp”那樣可以暫存文件。復(fù)制并粘貼以下指令到您的終端。


sudo useradd -b /home -m -p $( pwgen --secure 32 1 ) 
-c "NAS account" nas
sudo chmod 1777 /home/nas
sudo mount -o rw,noatime,nodev,nosuid,noexec  /dev/sda1 /home/nas 
sudo chown nas:nas /home/nas
sudo chmod 1777 /home/nas

為了確保我們每次都在“/home/nas”處掛載此磁盤(pán),請(qǐng)使用磁盤(pán)標(biāo)識(shí)符。“/dev/sda1”設(shè)備可能會(huì)被更改?!皊da”可能會(huì)變成下一次啟動(dòng)時(shí)的USB拇指驅(qū)動(dòng)硬盤(pán)。但是,磁盤(pán)標(biāo)識(shí)符不會(huì)被更改。那我們就來(lái)實(shí)現(xiàn)它吧!


sudo fdisk -l /dev/sda

將輸出類(lèi)似以下的內(nèi)容:


Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 sectors
Disk model: Crucial_CT240M50
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0acb1143

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 468862127 468860080 223.6G 83 Linux

我們想要命令行以“磁盤(pán)標(biāo)識(shí)符”作為開(kāi)頭。刪除“0x0acb1143”中開(kāi)頭的“0x”,并在后面加上“-01”,這樣您就能夠得到與“/dev/sda1”意義相同、并且具有唯一性的磁盤(pán)標(biāo)識(shí)符了?,F(xiàn)在我們把所需要的字符串“0acb1143-01”添加到fstab:


PARTUUID=0acb1143-01    /home/nas ext4    defaults,noatime,nodev,nosuid,noexec,noauto 0 0

最后一個(gè)掛載參數(shù)是“noauto”,含義為在系統(tǒng)啟動(dòng)時(shí)Pi不會(huì)自動(dòng)將該分區(qū)掛載到指定掛載點(diǎn)中。這在您忘記插入磁盤(pán)的時(shí)候會(huì)很有用。在您準(zhǔn)備部署NAS的時(shí)候可以忽略“noauto”?!皀oauto”的唯一缺點(diǎn)是您必須以“pi”的身份登錄并運(yùn)行以下指令:


sudo mount /home/nas

…… 每次重啟之后。

現(xiàn)在使用以下指令掛載磁盤(pán):


sudo mount /home/nas

一切都進(jìn)展的很順利!好吧,也不完全是。

1.2.2 NAS服務(wù)

您需要啟用一些服務(wù)功能。幸運(yùn)的是,我們安裝了ProFTPd,Samba,并且在第一次啟動(dòng)的時(shí)候就已經(jīng)安裝了OpenSSH。

首先,將此文件解壓到“pi”主目錄中。您將會(huì)進(jìn)行大量的文件傳輸,所以最好現(xiàn)在安裝FileZilla 。將rpi4_nas+hurricane.zip復(fù)制到您Pi上的“/home/pi”中,然后將以下內(nèi)容復(fù)制并粘貼到Pi的終端:


unzip rpi4_nas+hurricane.zip
sudo cp -vp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.bak
sudo cp -v proftpd.conf /etc/proftpd
sudo chown root:root /etc/proftpd/proftpd.conf
sudo chmod 0644 /etc/proftpd/proftpd.conf
sudo cp -vp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo cp -v smb.conf /etc/samba/smb.conf
sudo chown root:root /etc/samba/smb.conf
sudo chmod 0644 /etc/samba/smb.conf
sudo service proftpd restart
sudo systemctl enable proftpd
echo "ProFTPd (FTP) has been started and enabled on boot!"
sudo service smbd restart
sudo systemctl enable smbd
echo "Samba (SMB/CIFS) has been started and enabled on boot!"
sudo service ssh start
sudo systemctl enable ssh
echo "Secure Shell (SSH) has been started and enabled on boot!"
echo "Enter SMB/CIFS password to be used for user 'nas'"
sudo smbpasswd nas
echo "Enter SMB/CIFS password to be used for user 'pi'"
echo "(This does not need to match  your 'pi' login password!)"
sudo smbpasswd pi

當(dāng)您的Pi完成了指令的接收后(并且您已經(jīng)輸入了一些密碼),您就可以通過(guò)FTP、SMB/CIFS以及SSH訪問(wèn)您的NAS了。FTP和SSH都可以讓您使用“nas”用戶(hù)的密碼登錄到您的NAS中。您可以根據(jù)需要使用“sudo passwd nas”指令對(duì)密碼進(jìn)行更改。“smbclient”已經(jīng)安裝好了,那么我們來(lái)看一下您的系統(tǒng)為網(wǎng)絡(luò)提供了哪些功能:


smbclient -N -L //localhost

輸出內(nèi)容


Anonymous login successful

        Sharename       Type      Comment
        ---------       ----      -------
        homes           Disk      User Home Directories
        IPC$            IPC       Service (Samba 4.9.5-Debian)
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        WORKGROUP            

用我的“nas”用戶(hù)名(密碼為“foo bar baz”)進(jìn)行登錄,并將磁盤(pán)掛載到“/home/nas”中。


pi@uNAS 0 ~ $ smbclient --encrypt //localhost/homes --user=nas%'foo bar baz'
Try "help" to get a list of possible commands.
smb: > ls
  .                                   D        0  Wed Jul 31 10:54:46 2019
  ..                                  D        0  Wed Jul 31 08:15:21 2019
  nas                                 D        0  Tue Jul 30 20:48:48 2019
  lost+found                          D        0  Sun Oct  7 15:10:07 2018
  disk_speed_test.log                 N      215  Wed Jul 31 09:16:49 2019
  disk_speed_test.sh                  N      795  Wed Jul 31 07:10:49 2019

                479639216 blocks of size 1024. 455131416 blocks available
smb: > exit

“smbclient”的程序可能不太簡(jiǎn)單易懂,但是我們只需要關(guān)注兩個(gè)指令就可以了。這兩個(gè)指令是相同的,不過(guò)第一個(gè)是說(shuō)明性的,第二個(gè)會(huì)連接到“nas”用戶(hù)的主文件夾。


smbclient --encrypt //IP_ADDRESS/SERVICE --user=USERNAME%PASSWORD
smbclient --encrypt //127.0.0.1/homes --user=nas%'foo bar baz'

1.2.3 磁盤(pán)和網(wǎng)絡(luò)性能

USB3.0的傳輸速度最高可以達(dá)到5Gbit/s (625MByte/s),但是幾乎沒(méi)有旋轉(zhuǎn)(如磁力)驅(qū)動(dòng)器的傳輸速度可以超過(guò)800Mbit/s (100MByte/s)。那要怎么辦呢?

在這種情況下,使用2.5″驅(qū)動(dòng)器,并且使用少于5W的功率是個(gè)不錯(cuò)的選擇。我在網(wǎng)絡(luò)上和本地Pi上的速度測(cè)試結(jié)果幾乎都約為640Mbit/s。您可以通過(guò)包含“disk_speed_test.sh”的腳本自己進(jìn)行測(cè)試,或者直接用以下指令進(jìn)行測(cè)試:


sudo ./disk_speed_test.sh 
[!] Unmounting /dev/sda1 (if mounted) ...
vm.drop_caches = 0
[!] Testing write speed (cached) ...
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.1259 s, 88.5 MB/s
vm.drop_caches = 3
[!] Testing write speed (uncached) ...
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 12.6074 s, 85.2 MB/s
removed '/mnt/nulls.dd'
vm.drop_caches = 0
[!] Testing cached/buffered read speeds (three times) ...

/dev/sda:
 Timing cached reads:   1648 MB in  2.00 seconds = 824.24 MB/sec
 Timing buffered disk reads: 244 MB in  3.02 seconds =  80.78 MB/sec

/dev/sda:
 Timing cached reads:   1658 MB in  2.00 seconds = 829.26 MB/sec
 Timing buffered disk reads: 242 MB in  3.01 seconds =  80.46 MB/sec

/dev/sda:
 Timing cached reads:   1656 MB in  2.00 seconds = 827.66 MB/sec
 Timing buffered disk reads: 242 MB in  3.00 seconds =  80.65 MB/sec

USB2的理論最高傳輸速度為480Mbit/s (~60Mbyte/s),但實(shí)際上卻從來(lái)沒(méi)有達(dá)到過(guò)這個(gè)速度,所以從這一點(diǎn)來(lái)說(shuō)是一個(gè)很大的進(jìn)步?;谶@種數(shù)據(jù)傳輸速率,您可以在一分鐘以?xún)?nèi)傳輸約5.1GB的數(shù)據(jù)量,一小時(shí)內(nèi)傳輸超過(guò)300GB的數(shù)據(jù)量。如果測(cè)試性能不佳,使用指令“sudo hdparm -B 255 /dev/sda”,然后再次進(jìn)行測(cè)試。如果沒(méi)有成功,用“l(fā)susb”指令檢查一下您的USB3設(shè)備是否真的是一個(gè)USB3設(shè)備。查找bcdUSB。我的磁盤(pán)報(bào)告顯示的是“bcdUSB 3.0”。您的結(jié)果呢?


pi@uNAS 0 ~ $ lsusb
# ...
Bus 002 Device 003: ID 1058:0748 Western Digital Technologies, Inc. My Passport (WDBKXH, WDBY8L)
# ...
# Only look at specific device, use USB VID:PID 
pi@uNAS 0 ~ $ lsusb -d 1058:0748
Bus 002 Device 003: ID 1058:0748 Western Digital Technologies, Inc. My Passport (WDBKXH, WDBY8L)
# More verbose, please
pi@uNAS 0 ~ $ lsusb -d 1058:0748 -v | egrep 'bcdUSB|MaxPower'
  bcdUSB               3.00
    MaxPower              896mA

報(bào)告的內(nèi)容很全面,而且我的驅(qū)動(dòng)器確實(shí)是USB3。同時(shí),它顯示使用了最大功率4.48W。太好了!

對(duì)于網(wǎng)絡(luò),請(qǐng)使用CAT6線纜,如果您的路由器和Pi之間有交換機(jī),請(qǐng)確保是千兆交換機(jī)。我費(fèi)了較大的功夫才找到了適用于許多TCP數(shù)據(jù)包的最佳設(shè)置,事實(shí)證明Raspbian在這方面已經(jīng)做的很好了。如果您發(fā)現(xiàn)有什么問(wèn)題,請(qǐng)?jiān)谀腜i終端嘗試以下操作:


sudo sysctl -w net.ipv4.tcp_window_scaling=1
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
sudo sysctl -w net.ipv4.tcp_rmem='4096 87380 16777216'
sudo sysctl -w net.ipv4.tcp_wmem='4096 16384 16777216'

如果有幫助的話(huà),請(qǐng)按照以下方式來(lái)保存您的更改,使其不會(huì)在重啟后失效:


sudo cat>>/etc/sysctl.conf<<-"EOF"
net.ipv4.tcp_window_scaling = 1
net.core.rmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
EOF
sysctl -p

2 附加收獲:Raspberry Pi “HURRiCANE!”冷卻系統(tǒng)

大量的能耗會(huì)產(chǎn)生大量的熱量。Raspberry Pi 4無(wú)法避免溫度高達(dá)176度的過(guò)熱問(wèn)題,而這種過(guò)熱問(wèn)題會(huì)導(dǎo)致CPU的頻率低至600MHz。您大可以將四個(gè)Raspberry Pi的集群設(shè)備放置到您的桌面上,但是如果沒(méi)有冷卻裝置,您就只能瀏覽文本形式的網(wǎng)頁(yè),以及用vi來(lái)閱讀電子書(shū)了。

有兩種方法可以解決這個(gè)問(wèn)題。第一個(gè)方法是使用像ICE Tower CPU散熱器這樣的僅對(duì)CPU進(jìn)行散熱的裝置。第二個(gè)方法是在每個(gè)負(fù)載下發(fā)熱的芯片上都安裝一個(gè)小尺寸的長(zhǎng)款散熱片,然后將足夠的氣流推入并穿過(guò)這些芯片。但是在本項(xiàng)目中,我僅使用了一個(gè)3W的風(fēng)扇,就將系統(tǒng)溫度降低到了約104度。CPU風(fēng)扇需要能在12伏電壓下運(yùn)行。讓我們一起來(lái)實(shí)現(xiàn)它吧!

2.1 BOM:

1x ROHM SLR343BC4TT32 3mm LED https://www.avnet.com/shop/us/products/rohm/slr343bc4tt32-3074457345627700657
Raspberry Pi 4 https://www.adafruit.com/product/4296
Raspberry Pi 4 電源 (USB-C) https://www.raspberrypi.org/products/type-c-power-supply/
microHDMI 到 HDMI 適配器 https://www.newark.com/pro-signal/psg03627/audio-video-connector-a-hdmi-plug/dp/86T1307
16GB microSD 卡 https://www.newark.com/transcend/tsraspi10-16gv2/microsd-card-raspberry-pi-board/dp/49AC7645
USB3 硬盤(pán) https://www.amazon.com/Seagate-Portable-External-Drive-STGX1000400/dp/B07CRG7BBH
1x IRLZ24N N通道 MOSFET https://www.newark.com/infineon/irlz24npbf/n-channel-mosfet-55v-18a-to-220ab/dp/63J7702
2x BAT86 肖特基二極管 https://www.newark.com/nexperia/bat86/rectifier-diode-single-50-v-200/dp/96K6771
2x 330 歐姆電阻 https://www.newark.com/multicomp/mccfr0w4j0331a50/carbon-film-resistor-330-ohm-250mw/dp/58K5042
1x 4K7 歐姆電阻 https://www.newark.com/multicomp/mccfr0w4j0472a50/carbon-film-resistor-4-7kohm-250mw/dp/58K5056
1x 12V 1A 電源 https://www.newark.com/xp-power/vel12us120-us-ja/adaptor-ac-dc-12v-1a/dp/71Y7923
1x 12V 風(fēng)扇 https://www.newark.com/sanyo-denki/9a0812h401/axial-fan-80mm-12vdc-130ma/dp/96M6913
跳線 https://www.newark.com/adafruit/758/kit-contents/dp/88W2570
萬(wàn)用板 https://www.newark.com/multicomp/mc001796/stripboard-100mm-x-100mm/dp/24AC5039
面包板 https://www.newark.com/global-specialties/ubs-100/breadboard-mold-in-bus-strips/dp/17C6982
3x 2P 2.54mm 螺絲端子 https://www.newark.com/phoenix-contact/1725656/terminal-block-pcb-2-position/dp/71C4107
焊接 https://www.newark.com/kester-solder/24-6040-0027/solder-wire-60-40-sn-pb-190-c/dp/34C5648
3x 長(zhǎng)款散熱片 https://www.adafruit.com/product/3082

2.2 ‘HURRiCANE!’ Raspberry Pi 控制腳本

首先,將以下腳本程序復(fù)制到您的Pi主文件下。復(fù)制后,在您的Pi終端輸入“cat >>hurricane.sh<<-“EOF”。然后,粘貼腳本,按回車(chē)鍵,輸入EOF,再按回車(chē)鍵。

[begin hurricane.sh]


#! /usr/bin/env bash
# Depends on the 'wiringpi' package.
set -u -o pipefail
trap 'printf "n[!] Cleaning up pin modes and bailing out!n"  ; 
  /usr/bin/gpio export 18 low ; 
  /usr/bin/gpio export 23 low ; exit ' INT TERM
_fan_pin=18 # BCM18, BOARD12
_led_pin=23 # BCM23, BOARD16
# Don't let it run for too long
_temp_upper=55 # Start at
_temp_lower=45 # Stop at
_is_cooling_active=0
_interval=5
_gpio=$( which gpio || NO )
if [ $_gpio = NO ] ; then
    echo "ERROR: Is wiringpi installed? Do 'sudo apt-get -y install wiringpi'."
    exit 1
fi
			  
function printBanner {
cat < ${_temp_f}F"
    return $_temp_f
}
# Fahrenheit to celsius: C = ( F - 32 ) * 5/9
function fahrenheit2celsius {
    local _temp_c=$( echo $1 | awk 
        '{ printf( "%.1dn", ( $1 - 32 ) * 5/9 ) }' )
    #echo "${1}F => ${_temp_c}C"
    return "$_temp_c"
}

function hurricane {
    if [ $# -eq 0 ] ; then echo no args? ; return 1 ; fi
    if [ $1 -eq 1 ] ; then
	echo "HURRiCANE cooling system: ACTIVE"
	$_gpio export $_fan_pin high
	$_gpio export $_led_pin high
	_is_cooling_active=1
    elif [ $1 -eq 0 ] ; then
	echo "HURRiCANE cooling system: INACTIVE"
	$_gpio export $_fan_pin low
	$_gpio export $_led_pin low
	_is_cooling_active=0
    fi
}

printBanner
while true ; do
    _temp=$( vcgencmd measure_temp | awk -F= '{print $2} ' | awk -F. 
        '{print $1}' )
    _temp_f=$( celsius2fahrenheit $_temp )
    if [[ $_temp -ge $_temp_upper && _is_cooling_active -eq 0 ]]
    then
	hurricane 1
    elif [[ $_temp -le $_temp_lower && _is_cooling_active -eq 1 ]]
    then
	hurricane 0
    fi
    celsius2fahrenheit $_temp
    printf "System temperature: ${_temp}C / %iFn" $?
    sleep $_interval
done

[end hurricane.sh]

需要注意的是變量“_temp_upper”和“_temp_lower”之間的間隔很短。第一個(gè)設(shè)定的是您希望能夠觸發(fā)冷卻系統(tǒng)啟動(dòng)的溫度值,第二個(gè)設(shè)定的是風(fēng)扇停止運(yùn)作的最低溫度值。這樣既可以降低噪音,也可以延長(zhǎng)風(fēng)扇的使用壽命。

剩下的就是制作電路板了。不用擔(dān)心這會(huì)很復(fù)雜,其實(shí)非常簡(jiǎn)單。

2.3 項(xiàng)目完成!

看這張F(tuán)ritzing示意圖!展示的是已經(jīng)應(yīng)用到NASA太空實(shí)驗(yàn)室以外的微型計(jì)算機(jī)上的最棒的通風(fēng)系統(tǒng)!什么?通風(fēng)系統(tǒng)?因?yàn)橥馓仗淞耍鋮s系統(tǒng)其實(shí)就相當(dāng)于一個(gè)氣閥室,而且全面通風(fēng)對(duì)于太空站來(lái)說(shuō)是完全不可能的。

poYBAGPzH6mABi0lAAEbaKLH6eM385.jpg

好吧,我們先來(lái)看一下兩種不同的冷卻方式:

poYBAGPzH6yAKGo3AAGfLhdCIEI620.jpg

功能強(qiáng)大,但是閑置的時(shí)候溫度為55C/131F。

很多電子設(shè)備會(huì)因?yàn)闊釕?yīng)力導(dǎo)致?lián)p壞,尤其是沒(méi)有移動(dòng)部件的電子設(shè)備。熱應(yīng)力來(lái)自于物體尺寸的膨脹和收縮,而這種尺寸變化肉眼是無(wú)法識(shí)別的。幾年更換一次風(fēng)扇要比無(wú)形中損失一個(gè)Pi好得多。Robinsons可承擔(dān)不了失去機(jī)器人朋友帶來(lái)的損失。

所幸的是,“HURRiCANE!”可以解決所有問(wèn)題!我們想要的是在CPU和Wi-Fi/藍(lán)牙芯片上,在主板的左上方,以及在CPU左邊的芯片上能夠有一些不錯(cuò)的長(zhǎng)款散熱器。銅的導(dǎo)熱性很好,但是鋁能夠更容易地將其釋放到“HURRiCANE!”的氣流中。

豎高型的結(jié)構(gòu)可以增加散熱的表面積,這意味著我們可以避免Raspberry Pi 4發(fā)生遲滯。

以上組件列表中的散熱器均帶有導(dǎo)熱膠帶。我們之所以需要三個(gè),是因?yàn)镽aspberry Pi左上角的三個(gè)大的芯片高度不均勻。

CPU 和Wi-Fi/藍(lán)牙芯片上有RF屏蔽罩,這使得在上面放置一個(gè)大尺寸散熱器變得非常困難。在接入三個(gè)散熱器之前,請(qǐng)務(wù)必先用蘸有異丙醇的棉簽將其擦拭干凈。

我為我的Raspberry Pi 4購(gòu)買(mǎi)了性能最好的小型“動(dòng)態(tài)冷卻系統(tǒng)”產(chǎn)品中的一種。但是它沒(méi)有達(dá)到冷卻的效果,反而吸收了很多熱量。IRLZ24N MOSFET消除了所有不合理的功率問(wèn)題,在2V電壓下順利導(dǎo)通(所以3.1V電壓會(huì)更好),并且以防MOSFET出現(xiàn)故障,我們使用BAT86肖特基勢(shì)壘二極管來(lái)保護(hù)我們的輸出引腳BCM18/BOARD12和BCM23/BOARD16。注意,BCM18/BOARD12引腳是PWM引腳,您可以根據(jù)需要將電壓降低到3.1V以下。

將12V電壓連接到風(fēng)扇的正極端子,并將風(fēng)扇的負(fù)極端子連接到MOSFET的漏極后,我們可以將負(fù)載放置到相應(yīng)位置。然后,我們將MOSFET的源極接地,將BCM18/BOARD12與一個(gè)正向偏置到柵極的BAT86二極管串聯(lián),最后連接一個(gè)330歐姆的電阻以將最大電流限制在10mA。

請(qǐng)注意,從柵極到GND有一個(gè)4K7下拉電阻,如果沒(méi)有這個(gè)電阻,當(dāng)柵極的供電沒(méi)有達(dá)到3.1V時(shí)會(huì)產(chǎn)生振蕩,這樣的話(huà)就無(wú)法可靠地(或者快速地)關(guān)閉MOSFET。所以一定記得加上下拉電阻。

然后,制作小尺寸電路板。

pYYBAGPzH6-AX1deAAFTkXldHXE364.jpg

使用三個(gè)2P 2.54mm螺絲端子可以讓您Raspberry Pi的信號(hào)線連接變得更加容易,您需要為其做上永久性的標(biāo)記。我標(biāo)記的是“Fan S+”,“12V”,“GND”和“LED S+”,而在風(fēng)扇上,我只標(biāo)記了“+”和“-”。

保護(hù)您Pi輸出引腳的兩個(gè)二極管很重要。如果您的二極管偏置錯(cuò)誤,就必須把它們拆解下來(lái)并進(jìn)行翻轉(zhuǎn)。您需要將陰極面向Pi引腳,陽(yáng)極面向MOSFET和LED的陽(yáng)極。在上面的圖示中,陽(yáng)極用黑色小環(huán)進(jìn)行了標(biāo)記。肖特基二極管僅產(chǎn)生大約0.2V的壓降,所以我們可以放心地將它們與Pi配合使用, 并且可以保證MOSFET啟動(dòng)時(shí)產(chǎn)生合理的導(dǎo)通電阻。在3W的負(fù)載下,我們的IRLZ24N溫度甚至不會(huì)升高到室溫以上。如果您使用大功率CPU風(fēng)扇,比如10-12W,那可能需要連接一個(gè)1W的小散熱器,尺寸不要太大。

組裝并焊接好電路板后,將其連接到您的Raspberry Pi 4,該冷卻系統(tǒng)可以持續(xù)工作很多很多年。使用WiringPi庫(kù)可以使其比上文中的腳本簡(jiǎn)單很多,我們只用將引腳上的電壓值在3.3V和0V之間進(jìn)行翻轉(zhuǎn)就可以了。需要注意的是,使用12伏的風(fēng)扇只是因?yàn)樗鼈児β蚀蟛⑶覕?shù)量多。您也可以根據(jù)自己的需要選擇5伏的風(fēng)扇。

祝您玩得愉快!

pYYBAGPy03uAbR05AAAG6J_TkQQ048.jpg

Lasse Efrayim Jespersen

Lasse出生于以色列,后移居到緯度較冷的地區(qū)。出于個(gè)人天然的興趣愛(ài)好,他一步步走近了直接的Perl、高效的C/C++、以及優(yōu)雅的MicroPython。他非常喜歡用ESP8266/ESP32/Raspberry Pi 和Arduino來(lái)構(gòu)建機(jī)器。

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9248

    瀏覽量

    85737
  • NAS
    NAS
    +關(guān)注

    關(guān)注

    11

    文章

    290

    瀏覽量

    112542
  • Raspberry Pi
    +關(guān)注

    關(guān)注

    2

    文章

    559

    瀏覽量

    22310
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Raspberry Pi 3試用體驗(yàn)】搭建Samba服務(wù)器(結(jié)項(xiàng)一)

    本帖最后由 xjallen 于 2016-6-18 16:25 編輯 【Raspberry Pi 3試用體驗(yàn)】搭建Samba服務(wù)器 Samba實(shí)現(xiàn)SMB協(xié)議,由服務(wù)器及客戶(hù)端程序
    發(fā)表于 06-18 16:25

    NAS網(wǎng)絡(luò)存儲(chǔ)服務(wù)器,硬盤(pán),1-bay NAS Kit for NanoPi NEO

    其中,開(kāi)箱即用。OpenMediaVault是Linux下目前最為流行的開(kāi)源網(wǎng)絡(luò)附加存儲(chǔ)(NAS)解決方案,它包含眾多服務(wù),如SSH,(S)FTP,SMB / CIFS,DAAP媒體服務(wù)器
    發(fā)表于 04-06 17:18

    請(qǐng)問(wèn)Raspberry Pi怎么傳輸視頻?

    硬件:Raspberry Pi 3B+,Raspberry Pi Camera v2操作系統(tǒng):Raspbian提問(wèn):想把攝像頭拍攝的視屏傳輸
    發(fā)表于 04-30 07:56

    如何以高效且安全的冷卻系統(tǒng)消除服務(wù)器散發(fā)的廢熱?

    如何以高效且安全的冷卻系統(tǒng)消除服務(wù)器散發(fā)的廢熱?
    發(fā)表于 05-21 06:55

    安裝Raspberry Pi Clock Hat的教程分享

    Raspberry Pi 用于基于服務(wù)器的應(yīng)用程序(如 NAS 服務(wù)器、家庭自動(dòng)化服務(wù)器等)
    發(fā)表于 07-05 06:01

    帶超頻冷卻孔徑的Raspberry Pi GPIO帽

    描述Raspberry Pi GPIO 帽,帶超頻冷卻孔徑這是一個(gè) Raspberry Pi 帽子,它允許 GPIO 引腳直接與寬范圍的輸入
    發(fā)表于 09-12 06:14

    何用Raspberry Pi觸發(fā)噴水滅火系統(tǒng)

    本文將介紹如何用一個(gè)簡(jiǎn)單且廉價(jià)的 Raspberry Pi、基于Web的系統(tǒng)替換您的噴水滅火控制
    的頭像 發(fā)表于 07-21 17:25 ?2732次閱讀
    如<b class='flag-5'>何用</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>觸發(fā)噴水滅火<b class='flag-5'>系統(tǒng)</b>

    構(gòu)建Raspberry Pi電機(jī)驅(qū)動(dòng)器HAT的教程分享

    本教程中,我們將構(gòu)建一個(gè)Raspberry Pi 電機(jī)驅(qū)動(dòng)器 HAT來(lái)驅(qū)動(dòng)直流和步進(jìn)電機(jī)。此電機(jī)驅(qū)動(dòng)器
    發(fā)表于 08-05 16:20 ?1469次閱讀
    <b class='flag-5'>構(gòu)建</b><b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>電機(jī)<b class='flag-5'>驅(qū)動(dòng)器</b>HAT的教程分享

    使用Raspberry Pi構(gòu)建一個(gè)智能車(chē)庫(kù)開(kāi)門(mén)

    在本教程中,我們將使用 Raspberry Pi 構(gòu)建一個(gè)智能車(chē)庫(kù)開(kāi)門(mén)。這里將創(chuàng)建一個(gè)Raspberry
    的頭像 發(fā)表于 09-07 15:54 ?2192次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>構(gòu)建</b>一個(gè)智能車(chē)庫(kù)開(kāi)門(mén)<b class='flag-5'>器</b>

    構(gòu)建自己的Raspberry Pi ALPR停車(chē)系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建自己的Raspberry Pi ALPR停車(chē)系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 11-08 11:14 ?0次下載
    <b class='flag-5'>構(gòu)建</b>自己的<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> ALPR停車(chē)<b class='flag-5'>系統(tǒng)</b>

    基于諾基亞5110的Raspberry Pi帽子

    Raspberry Pi 系統(tǒng)的關(guān)鍵參數(shù),例如時(shí)間、日期、CPU 使用率、CPU 溫度、網(wǎng)絡(luò) IP等。除此之外,它還允許您控制一些基本操作,例如從機(jī)載定位按鈕關(guān)閉和重新啟動(dòng)。這個(gè)項(xiàng)目對(duì)于那些想要將
    發(fā)表于 12-21 12:27 ?0次下載

    如何將Raspberry Pi用作DNS服務(wù)器?

    如果您正在尋找用于家庭或小型企業(yè)網(wǎng)絡(luò)的DNS服務(wù)器,Raspberry Pi將會(huì)是一個(gè)便宜、可靠且節(jié)能的選擇。首先,讓我們來(lái)了解一下什么是DNS服務(wù)器。
    的頭像 發(fā)表于 02-25 17:31 ?1072次閱讀
    如何將<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>用作DNS<b class='flag-5'>服務(wù)器</b>?

    如何使用Raspberry Pi搭建VPN服務(wù)器

    想要搭建一個(gè)VPN?用月費(fèi)來(lái)租一個(gè)很容易,但是如果您有Raspberry Pi,并且了解一些專(zhuān)業(yè)知識(shí),就可以搭建自己的VPN服務(wù)器了!
    的頭像 發(fā)表于 02-24 16:59 ?3180次閱讀
    如何使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>搭建VPN<b class='flag-5'>服務(wù)器</b>

    如何將Raspberry Pi用作Web服務(wù)器?

    您是否知道Raspberry Pi基金會(huì)的官方網(wǎng)站是托管在Raspberry Pi板集群上的?這種配置在基金會(huì)最繁忙的一天—Raspberry
    的頭像 發(fā)表于 02-25 17:34 ?912次閱讀
    如何將<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>用作Web<b class='flag-5'>服務(wù)器</b>?

    使用Raspberry PI 4單板計(jì)算機(jī)構(gòu)建Samba NAS服務(wù)器

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry PI 4單板計(jì)算機(jī)構(gòu)建Samba NAS服務(wù)器.zip》資料免費(fèi)下載
    發(fā)表于 07-05 09:50 ?0次下載
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>PI</b> 4單板計(jì)算機(jī)<b class='flag-5'>構(gòu)建</b>Samba <b class='flag-5'>NAS</b><b class='flag-5'>服務(wù)器</b>