如何將 WordPress 媒體庫連接到 Linode Block Storage

WordPress Media to Linode Storage

Linode Block Storage (儲存桶) 在 2017 年就開始測試了 🚀 🐳 🍎,2018 年開始收費,到了 2018/10 月,最後一個機房 – 日本機房也可以配置使用了 😎。

Advertisement

Block Storage 的價格與容量:

$0.10 per GiB/month,使用 20GB 的 Block Storage 空間,一個月要花 $2 美金,這個價格與 DigitalOcean Block Storage 和 Vultr Block Storage 的價格是一樣的,價格算是划算。

DigitalOcean Block Storage

Vultr Block Storage

最小購買為 10GB 空間,最大可以到 10TB,而且一台 VPS 可以安裝 8 個 Block Storage,一個帳號最多可使用 100TB 的空間,這對一般用戶,是非常夠用了。

Block Storage 的優點:

  • 分別管理您的數據:獨立使用一個數據系統,不受到系統 VPS 影響。
  • 動態調整大小:可自由的調整儲存桶的空間大小,VPS 的使用更佳的靈活。
  • 靈活的數據遷移:Block Storage 可以輕鬆地從一台 VPS 掛載到另一台 VPS,而無需重新啟動主機。
  • 高速存儲及安全性:Block Storage 具有 3x 同步複製的高可用性,NVMe / HDD 硬體和快速網路。
如果你有一個相片或旅遊網站,需要儲存大量的相片,但又用不到很大的 CPU 及 RAM,Linode Block Storage 的方式就很適合這樣類型的網站。

就以一個 1G RAM 方案的 VPS 主機,搭建 WordPress 網站將媒體庫掛載到 Linode Block Storage 空間為例子。

在 VPS 創建 Block Storage:

在 Linode 控制台添加 (Create a new Volume) 一個 Block Storage,如下圖:

Linode Block Storage-1

給 Block Storage 一個名稱,size 為 10GB ~ 10TB 之間:

Linode Block Storage-2

添加好 Block Storage 後,你會看到如下圖所示的 Volume Attached 頁面,請將此頁面 copy 下來,該頁面顯示如何安裝 Block Storage,以及如何添加它 /etc/fstab 以便在 VPS 重新啟動後自動掛載:

Linode Block Storage-3

如果忘了這些配置指令,也沒關係,再按一次 Block Storage Volumes 的 Edit,還是可以看的到說明。

使用 SSH 指令,檢查 VPS 掛載的磁碟:

lsblk

回覆:

Linode Block Storage-5

/dev/sda 原本的 VPS 空間
/dev/sdb swap 交換空間
/dev/sdc 掛載的 Block Storage 20G 空間

依照 Volume Attached 說明頁面,開始掛載 Block Storage,格式化硬碟:

mkfs.ext4 /dev/disk/by-id/scsi-0Linode_Volume_wpstorage2

開始移動 WordPress 媒體庫到 Block Storage 空間:(開始前先將你的 VPS 做好快照)

備份 uploads 文件,更名為 uploads-old 資料夾:

mv /var/www/domain.com/htdocs/wp-content/uploads /var/www/domain.com/htdocs/wp-content/uploads-old

創建新的上傳文件夾 uploads 並設置正確的權限:

mkdir /var/www/domain.com/htdocs/wp-content/uploads
chown www-data:www-data /var/www/domain.com/htdocs/wp-content/uploads

掛載 Block Storage 空間到 /wp-content/uploads,(注意:並不是說明文檔中的 /mnt/wpstorage2):

mount /dev/disk/by-id/scsi-0Linode_Volume_wpstorage2 /var/www/domain.com/htdocs/wp-content/uploads

在 /etc/fstab 文件中添加如下配置,VPS 重啟後自動掛載 Block Storage 空間:

/dev/disk/by-id/scsi-0Linode_Volume_wpstorage2 /var/www/domain.com/htdocs/wp-content/uploads ext4 defaults,noatime 0 2

複製 uploads-old 文件到新的 uploads 資料夾:

cp -Rp /var/www/domain.com/htdocs/wp-content/uploads-old/* /var/www/domain.com/htdocs/wp-content/uploads/

請重啟 (reboot) VPS 服務器,查看是否正確加載 Block Storage 空間:

df -h

回覆:

root@localhost:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            463M     0  463M   0% /dev
tmpfs            99M  5.7M   93M   6% /run
/dev/sda         25G  2.8G   21G  12% /
tmpfs           493M     0  493M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
/dev/sdc         20G   76M   19G   1% /var/www/domain.com/htdocs/wp-content/upload

可以看到 /dev/sdc 以正確掛載,然後可以安心刪除 uploads-old 資料夾了:

rm -RI /var/www/domain.com/htdocs/wp-content/uploads-old

之後在 WordPress 媒體庫中上傳相片,都會在儲存在 Block Storage 空間。

參考文件:

How to Use Block Storage with Your Linode

This tutorial explains how to use Linode's block storage service.

Featured Photo by Drew Beamer on Unsplash

Follow me

yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師,其實是個打雜小弟,修電燈、水管也都是我的工作。
yungke
Follow me

Comments

  1. Aubrey says:

    謝謝版大分享! 受益良多
    有個想法想請教,先前讀過【使用子網域儲存 WordPress Media 媒體庫】到現在http/2時代
    經過這篇拜讀後,請問還需要以子網域作為處理媒體庫增加網站優勢嗎

    • yungke says:

      看你的網站型式來分別,像我的 blog 就不需要,圖片不多。
      有的攝影師、婚紗、旅遊..之類的網站,就有需要將媒體庫分離出來,用圖床、子網域、AWS 或 Block Storage 都好。
      為什麼? 這些網站一段時間後,圖片數量都是很驚人的,每日網站備份時都會耗掉很多主機資源及時間。

Back to top