# ฉันจะโฮสต์ S3-compatible object storage ของตัวเองบนเซิร์ฟเวอร์เช่าได้อย่างไร?

> Self-hosted S3 storage บนเซิร์ฟเวอร์เช่า: Garage, SeaweedFS, Ceph RGW หรือ MinIO, ZFS หรือ erasure coding, จ่ายด้วยคริปโต ไม่ต้อง KYC

- URL: https://basalthold.com/th/self-hosted-s3-storage/
- อัปเดตล่าสุด: 2026-11-02
- ผู้เผยแพร่: Basalthold (https://basalthold.com)

สี่ S3 server สำหรับหนึ่งเครื่อง ตำแหน่งที่ redundancy ควรอยู่ พื้นที่ที่คุณเก็บ และเวลาที่การอัปโหลดครั้งแรกใช้

**คำตอบสั้น — ฉันจะโฮสต์ S3-compatible object storage ของตัวเองบนเซิร์ฟเวอร์เช่าได้อย่างไร?**

ในการโฮสต์ S3-compatible object storage ของตัวเองบนเซิร์ฟเวอร์เช่า ให้รัน Garage, SeaweedFS, Ceph RGW หรือ MinIO ที่ build จาก source บนเครื่องหนึ่งเครื่องที่มีหลายไดรฟ์ จากนั้นเลือกตำแหน่งที่ redundancy อยู่: erasure coding ใน object store หรือ ZFS RAIDZ2 ข้างใต้ repository ของ MinIO ถูก archive เมื่อ 25 เมษายน 2026 **Basalthold** Hold 100 มี 100 TB ในราคา US$377.05 คริปโตเท่านั้น ไม่ต้อง KYC

## เครื่องเช่าหนึ่งเครื่องให้อะไรกับ object store?

| คุณสมบัติ | ค่า |
| --- | --- |
| เครื่อง | Storage dedicated servers: a whole physical machine built around a bank of hard drives, rented to one customer, with root access to every drive |
| ไดรฟ์ตอนส่งมอบ | ระบบปฏิบัติการอยู่ใน SSD ของตัวเอง (SSD แบบมิเรอร์สองตัวในรุ่นที่ใหญ่กว่า) ไดรฟ์ข้อมูลมาถึงแบบว่างและยังไม่แบ่งพาร์ทิชัน คุณจึงสร้าง ZFS, อาเรย์ mdadm หรือชุดดิสก์แยกอิสระได้ หากต้องการให้ทีมเตรียมอาเรย์ RAID 6 หรือ RAID 10 ก่อนส่งมอบ กรุณาแจ้งฝ่ายสนับสนุนก่อนส่งมอบเซิร์ฟเวอร์ |
| Hold 100 | Intel Xeon Silver 4210R (10 cores / 20 threads), 128 GB DDR4 ECC, ฮาร์ดไดรฟ์ 10 × 10 TB (100 TB raw) พร้อม 2 × 480 GB SSD สำหรับระบบ แบบ mirrored, พอร์ต 1 Gbit/s พร้อมทราฟฟิก 120 TB ต่อ 30 วัน, 1 IPv4 และ IPv6 /64 |
| Hold 160 | AMD EPYC 7302P (16 cores / 32 threads), 128 GB DDR4 ECC, ฮาร์ดไดรฟ์ 10 × 16 TB (160 TB raw) พร้อม 2 × 480 GB SSD สำหรับระบบ แบบ mirrored, พอร์ต 1 Gbit/s พร้อมทราฟฟิก 200 TB ต่อ 30 วัน, 1 IPv4 และ IPv6 /64 |
| ระบบ | Debian 13, Debian 12, Ubuntu 24.04 LTS, AlmaLinux 10, Rocky Linux 10, Proxmox VE 9 และ Proxmox Backup Server 4 |
| การเข้ารหัส | คุณเข้ารหัสทุกไดรฟ์ข้อมูลด้วย LUKS หรือการเข้ารหัสแบบเนทีฟของ ZFS ได้ กุญแจอยู่กับคุณ และไม่มีใครในทีมขอสิ่งเหล่านี้เลย |
| เครือข่าย | ทุกเซิร์ฟเวอร์มีพอร์ต 1 Gbit/s พร้อมโควตาทราฟฟิกรายเดือน (Hold 24 40 TB, Hold 40 60 TB, Hold 100 120 TB, Hold 160 200 TB), IPv4 address แบบเฉพาะหนึ่ง address และ IPv6 /64; การใช้เกินโควตาจะไม่ทำให้เกิดการเรียกเก็บเงินอัตโนมัติ |
| ราคาต่อ 30 วัน | Hold 24 $110.99, Hold 40 $201.09, Hold 100 $377.05, Hold 160 $561.39 |
| การชำระเงิน | คริปโตเท่านั้น: BTC, USDT, USDC, ETH, SOL, LTC, XMR ไม่ต้อง KYC: ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ ไม่ต้องใช้เอกสาร ไม่ต้องใช้บัตร และไม่ต้องใช้หมายเลขโทรศัพท์ ในทุกขั้นตอน |

## ฉันควรใช้ S3 server ตัวไหนบนเครื่องเดียว?

เลือก S3 server ตามคุณสมบัติที่ไคลเอนต์ของคุณต้องการ แล้วกำหนดขนาดเครื่อง เวอร์ชันด้านล่างคือ stable release ล่าสุดบนหน้าของโปรเจกต์เอง อ่านเมื่อ 2 พฤศจิกายน 2026

### สี่ S3 server บนเครื่องเดียว (อ่าน 2026-11-02)

| Server | รีลีสล่าสุด | สัญญาอนุญาต | Redundancy บนเครื่องเดียว | การทำเวอร์ชัน / object lock |
| --- | --- | --- | --- | --- |
| Garage | v2.5.0, 24 ตุลาคม 2026 | AGPLv3 เขียนด้วย Rust | ไม่มีจาก Garage ด้วย `replication_factor = 1`: วาง ZFS หรือ mdadm ไว้ข้างใต้ | ไม่ได้ / ไม่ได้ |
| SeaweedFS | 4.52, 2 พฤศจิกายน 2026 | Apache 2.0 เขียนด้วย Go | Replication หรือ Reed-Solomon 10+4 erasure coding บน sealed volumes | ได้ / ได้ |
| Ceph RGW | Ceph 21.2.0 "Umbrella", 28 ตุลาคม 2026 | LGPL 2.1 หรือ 3 เขียนด้วย C++ | Replicated หรือ erasure-coded pools; หนึ่ง OSD ต่อไดรฟ์ | ได้ / ได้ |
| MinIO community edition | RELEASE.2025-10-15T17-29-55Z, source only | AGPLv3; repository archived in April 2026 | Erasure coding across the drives | ได้ / ได้ |

Garage's S3 compatibility page lists versioning and object lock as missing. Ceph documents object lock in its RGW bucket operations.

- **Garage** is the lightest: its site asks for 1 GB of RAM. Without versioning or object lock, it suits sync targets and app storage more than locked backups.
- **SeaweedFS** documents versioning, object lock and erasure coding, all under Apache 2.0. Its project page says it is built for billions of files, and its erasure coding works per volume.
- **Ceph RGW** is the choice when you plan to grow to several machines. On one host it is heavy: Ceph's own docs call single-host clusters generally not suitable for production.
- **MinIO** still runs, but its free edition gets no more updates; see [the best alternative to MinIO](https://basalthold.com/th/minio-alternatives/ "MinIO community edition changes, dated, and the S3 servers that replace it").

## Erasure coding หรือ ZFS: redundancy ควรอยู่ที่ชั้นไหน?

Put redundancy in one layer only. Erasure coding on top of RAIDZ2 pays for parity twice and gains little on a single machine.

**Design A: separate disks, erasure coding in the object store.** MinIO, SeaweedFS and Ceph each split objects into data and parity shards across the drives. A failed drive costs only the shards on it, and the store heals object by object.

**Design B: a ZFS pool, no redundancy in the object store.** Build RAIDZ2, then run Garage with one replica or SeaweedFS without replication. ZFS checksums every block, repairs from parity, and gives you snapshots and compression on the whole pool.

**Our view: on one rented machine, Design B is simpler to run and easier to rescue.** One `zpool status` shows the health of every drive. ZFS snapshots also guard against a deleted bucket. Design A wins when you want per-object healing or plan to add machines later.

Garage needs Design B. Its quick start says a single-node layout gives no redundancy at all. With one copy, Garage's checksums can detect a bad block but cannot rebuild it.

> **Ask how the drives are presented** Of 23 storage-server sellers Basalthold checked on 2 November 2026, 4 state a hardware RAID controller on a storage plan. ZFS and erasure coding both want to see each drive. Basalthold hands the data drives over blank, so you build the layout yourself; read ZFS or hardware RAID on a rented server.

## แต่ละเลย์เอาต์เหลือพื้นที่ใช้งานได้เท่าไร?

Usable space depends on how many drives hold parity. OpenZFS gives the RAIDZ rule: N disks with P parity hold about (N − P) × the disk size. MinIO's default parity is EC:4 for sets of 8 drives or more and EC:2 for 5 or fewer. SeaweedFS's 10+4 code stores about 1.4 times the data.

### Usable capacity per hold, before filesystem overhead

| Hold | ไดรฟ์ | ZFS layout → usable | MinIO default parity → usable | SeaweedFS 10+4 → usable |
| --- | --- | --- | --- | --- |
| Hold 24 | 2 × 12 TB HDD | Mirror → 12 TB | 1 data + 1 parity → 12 TB | — |
| Hold 40 | 4 × 10 TB HDD | RAIDZ2 → 20 TB (RAIDZ1 → 30 TB) | EC:2 → 20 TB | — |
| Hold 100 | 10 × 10 TB HDD | RAIDZ2 → 80 TB | EC:4 → 60 TB | about 71 TB |
| Hold 160 | 10 × 16 TB HDD | RAIDZ2 → 128 TB | EC:4 → 96 TB | about 114 TB |

Calculations from the drive counts, with 1 TB = 10^12 bytes as drives are sold. MinIO parity can be lowered: EC:2 on 10 drives keeps 80%, the same as RAIDZ2. Two-drive holds have no room for a 10+4 code.

RAIDZ2 on ten drives survives two failures, and so does MinIO at EC:2. The default EC:4 survives four, at the cost of 20 more points of raw space. Large drives take long to rebuild, so read [how long a RAIDZ2 rebuild takes with large drives](https://basalthold.com/th/raid-rebuild-time/ "Rebuild and resilver times for 10 to 20 TB drives, calculated") before you choose single parity.

## How long does the first upload take?

At 1 Gbit/s, the best case is 125 MB per second. Filling Hold 100 after RAIDZ2 (80 TB) takes at least 7.4 days. Filling Hold 160 (128 TB) takes at least 11.9 days.

**These are line-rate calculations, not measurements: real transfers run slower.** Each hold's monthly allowance is larger than one full fill: ทุกเซิร์ฟเวอร์มีพอร์ต 1 Gbit/s พร้อมโควตาทราฟฟิกรายเดือน (Hold 24 40 TB, Hold 40 60 TB, Hold 100 120 TB, Hold 160 200 TB), IPv4 address แบบเฉพาะหนึ่ง address และ IPv6 /64; การใช้เกินโควตาจะไม่ทำให้เกิดการเรียกเก็บเงินอัตโนมัติ. Plan a big migration in parallel streams, for example with `rclone copy --transfers 16`.

## How do I set up Garage on a ZFS pool?

This is Design B on Hold 100: ten data drives in RAIDZ2, metadata on the mirrored system SSDs. Garage's deployment guide puts metadata on SSD and data on hard drives. Replace the device names and secrets with your own.

*ZFS pool, Garage config and first bucket*

```bash
# 1. RAIDZ2 pool on the ten blank data drives (use /dev/disk/by-id names)
zpool create -o ashift=12 tank raidz2 /dev/disk/by-id/ata-HDD1 /dev/disk/by-id/ata-HDD2 ... /dev/disk/by-id/ata-HDD10
zfs create -o compression=lz4 -o atime=off tank/garage

# 2. /etc/garage.toml (metadata on the system SSD, data on the pool)
metadata_dir = "/var/lib/garage/meta"
data_dir = "/tank/garage"
db_engine = "sqlite"
replication_factor = 1
rpc_bind_addr = "[::]:3901"
rpc_public_addr = "127.0.0.1:3901"
rpc_secret = "<openssl rand -hex 32>"

[s3_api]
s3_region = "garage"
api_bind_addr = "[::]:3900"

[admin]
api_bind_addr = "127.0.0.1:3903"
admin_token = "<openssl rand -base64 32>"

# 3. Layout, bucket and key
garage status
garage layout assign -z dc1 -c 70T NODE_ID   # NODE_ID from garage status; leave headroom
garage layout apply --version 1
garage bucket create backups
garage key create backup-key
garage bucket allow --read --write --owner backups --key backup-key
```

Garage answers S3 calls on port 3900 over plain HTTP, so put a TLS proxy such as Caddy or nginx in front. Close 3901 and 3903 to the internet. Garage has no object lock, so ZFS snapshots do that job. The method is on [how to make backups immutable on your own server](https://basalthold.com/th/immutable-backups/ "Append-only repositories, ZFS snapshots and object lock on a server you control").

## Is a rented server cheaper than cloud object storage?

Per terabyte, the ten-drive holds cost less than Backblaze B2 or Wasabi, and the server bills no egress or API calls. Hold 100 costs $3.77/TB per raw TB and Hold 160 $3.50/TB. As of 2 November 2026, Backblaze B2 lists $6.95 per TB a month and Wasabi $7.99.

Raw is not usable, though. RAIDZ2 on ten drives keeps 80%, so each usable TB costs a quarter more than each raw TB. Both ten-drive holds stay below B2 even then. On a two-drive hold a mirror halves the space, and the cloud wins. The cloud also keeps your data in more than one place, which one server does not. The full sum, with egress, is on [is a rented storage server cheaper than Backblaze B2 or Wasabi](https://basalthold.com/th/storage-server-vs-backblaze-b2-wasabi/ "Price per usable TB at 100 TB, with egress and API fees"). Every hold is on the [Basalthold pricing page](https://basalthold.com/th/pricing/ "All four holds, their drives and prices per 30 days").

## Self-hosted S3: quick answers

### Can I run S3-compatible storage on a single rented server?

Yes. Garage, SeaweedFS and MinIO all run on one machine, and Ceph RGW can with its single-host settings. Protect the data with RAIDZ2 underneath or erasure coding across the drives, never with nothing. One server is still one place, so keep a second copy elsewhere.

### How much RAM does a self-hosted S3 server need?

Garage asks for 1 GB. Ceph is the hungry one: its docs recommend at least 6 GiB per hard-drive OSD, so ten drives want about 60 GiB. ZFS also uses RAM as cache; see [how much RAM ZFS needs](https://basalthold.com/th/zfs-ram-requirements/ "RAM sizing for a 100 TB ZFS pool"). Hold 100 and Hold 160 carry 128 GB DDR4 ECC.

### Which self-hosted S3 server supports object lock for backups?

SeaweedFS, Ceph RGW และ MinIO รองรับ object lock; Garage ไม่รองรับ object lock ป้องกันไม่ให้เวอร์ชันของ object ถูกลบจนถึงวันหมดอายุการเก็บรักษา หากใช้ Garage ให้ป้องกันแบ็กอัปด้วย ZFS snapshot หรือเครื่องมือแบ็กอัปแบบ append-only แทน

### ฉันเข้ารหัสดิสก์ภายใต้ object store ของฉันได้ไหม

ได้ คุณเข้ารหัสทุกไดรฟ์ข้อมูลด้วย LUKS หรือการเข้ารหัสแบบเนทีฟของ ZFS ได้ กุญแจอยู่กับคุณ และไม่มีใครในทีมขอสิ่งเหล่านี้เลย การรีบูตจากระยะไกลจะต้องมีวิธีป้อนคีย์ [การปลดล็อก LUKS จากระยะไกล](https://basalthold.com/th/luks-remote-unlock/ "Dropbear in the initramfs, step by step") แสดงวิธีหนึ่ง

### MinIO ยังฟรีสำหรับ self-host อยู่ไหม

โค้ดชุมชนยังอยู่ภายใต้ AGPLv3 แต่ repository ถูก archive ไปในเดือนเมษายน 2026 และไม่ได้รับการอัปเดตอีกแล้ว ตอนนี้ MinIO ชี้ผู้ใช้ชุมชนไปที่ AIStor Free ซึ่งเป็นเวอร์ชัน single-node ภายใต้ไลเซนส์ฟรีที่จำกัดการแจกจ่ายซ้ำและการขายต่อ

## แหล่งที่มา

1. [Garage releases (v2.5.0)](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v2.5.0) — Deuxfleurs (read 2026-11-02)
2. [Garage home page (hardware requirements)](https://garagehq.deuxfleurs.fr/) — Deuxfleurs (read 2026-11-02)
3. [Garage quick start](https://garagehq.deuxfleurs.fr/documentation/quick-start/) — Deuxfleurs (read 2026-11-02)
4. [Garage: S3 compatibility status](https://garagehq.deuxfleurs.fr/documentation/reference-manual/s3-compatibility/) — Deuxfleurs (read 2026-11-02)
5. [Garage: deployment on a cluster](https://garagehq.deuxfleurs.fr/documentation/cookbook/real-world/) — Deuxfleurs (read 2026-11-02)
6. [SeaweedFS release 4.52](https://github.com/seaweedfs/seaweedfs/releases/tag/4.52) — SeaweedFS (read 2026-11-02)
7. [SeaweedFS: erasure coding for warm storage](https://github.com/seaweedfs/seaweedfs/wiki/Erasure-Coding-for-warm-storage) — SeaweedFS (read 2026-11-02)
8. [SeaweedFS: Amazon S3 API](https://github.com/seaweedfs/seaweedfs/wiki/Amazon-S3-API) — SeaweedFS (read 2026-11-02)
9. [v21.2.0 Umbrella released](https://ceph.io/en/news/blog/2026/v21-2-0-umbrella-released/) — Ceph (read 2026-11-02)
10. [Deploying a new Ceph cluster (single-host defaults)](https://docs.ceph.com/en/latest/cephadm/install/) — Ceph documentation (read 2026-11-02)
11. [CPU and memory sizing](https://docs.ceph.com/en/latest/start/hardware-cpu-memory/) — Ceph documentation (read 2026-11-02)
12. [RGW bucket operations (object lock)](https://docs.ceph.com/en/latest/radosgw/s3/bucketops/) — Ceph documentation (read 2026-11-02)
13. [MinIO repository (archived)](https://github.com/minio/minio) — MinIO (read 2026-11-02)
14. [MinIO erasure code quickstart guide](https://github.com/minio/minio/blob/master/docs/erasure/README.md) — MinIO (read 2026-11-02)
15. [MinIO storage class (default parity)](https://github.com/minio/minio/blob/master/docs/erasure/storage-class/README.md) — MinIO (read 2026-11-02)
16. [MinIO object lock and immutability guide](https://github.com/minio/minio/blob/master/docs/bucket/retention/README.md) — MinIO (read 2026-11-02)
17. [SeaweedFS repository (description, licence)](https://github.com/seaweedfs/seaweedfs) — SeaweedFS (read 2026-11-02)
18. [RAIDZ](https://openzfs.github.io/openzfs-docs/Basic%20Concepts/Pool%20Structure/RAIDZ.html) — OpenZFS documentation (read 2026-11-02)

**เช่าดิสก์สำหรับ S3 ของคุณเอง** Hold 100: 10 × 10 TB HDD สำหรับ US$377.05 Hold 160: 10 × 16 TB HDD สำหรับ US$561.39 ดิสก์ข้อมูลเปล่าและ root ผ่าน SSH จ่ายด้วยคริปโต ไม่ต้อง KYC [เปรียบเทียบทั้งสี่เครื่อง](https://basalthold.com/th/pricing/ "storage server แบบเช่าของ Basalthold ราคาเท่าไร?") · [เช่า Hold 100 ในอัมสเตอร์ดัม](https://basalthold.com/app/checkout/?plan=hold-100&location=nl-ams&lang=th)

---

Basalthold: Basalthold ให้เช่า dedicated server สำหรับ storage ใน Amsterdam, Bucharest และ Chisinau จ่ายด้วยคริปโต ไม่ต้อง KYC: ไม่ต้องใช้บัตรประชาชน ไม่ต้องเซลฟี่ ไม่ต้องส่งเอกสาร แต่ละเซิร์ฟเวอร์เป็นเครื่องกายภาพเต็มเครื่องที่มีฮาร์ดดิสก์ 24 TB ถึง 160 TB สำหรับลูกค้ารายเดียว ส่งมอบพร้อมไดรฟ์ข้อมูลเปล่าและสิทธิ์ root เหมาะสำหรับ backup, archive, ซิงค์ไฟล์ และ self-hosted object storage เมื่อวันที่ 2 พฤศจิกายน 2026 ราคาอยู่ที่ $110.99 ต่อ 30 วันสำหรับ 24 TB ถึง $561.39 สำหรับ 160 TB ($3.50 ต่อ raw TB) ดำเนินการโดย DomaineGoat LLC บริษัทจดทะเบียนใน Panama ไม่เก็บ log และไม่เคยขอ encryption key ของคุณ
