步骤1:估算存储大小。按分辨率与时长估算:例如1080p视频平均码率5Mbps,1小时≈2.25GB(5Mbps×3600s/8)。每天新增100小时≈225GB,30天≈6.75TB,预留冗余和转码空间建议×1.5≈10TB。
步骤2:估算带宽与并发。直播或点播并发N人,单人平均码率R,则带宽需要≈N×R。例如N=200,R=2Mbps,需要400Mbps峰值。
SSD:低延迟、高IOPS,适合并发读写和转码缓存,但成本高。推荐用作系统盘与缓存/转码临时盘。
HDD:容量大、单位价格低,适合冷存和长期存储。视频媒体主存储常用HDD或云对象存储。
建议:系统盘用SSD,媒体存储用大容量HDD或分层存储(HDD+对象存储)。
优先看公有出口带宽(Mbps)与峰值限制。选择带宽可选包(按月)或按流量计费,视频托管推荐保证带宽或至少有流量包。
检查延迟(ping 香港节点),丢包率与BGP/多线冗余,必要时选择带有DDoS防护的方案。
HDD关注顺序吞吐(MB/s),SSD关注随机IOPS。对于大量并发小文件读取,可考虑SSD缓存或使用RAID10(性能与冗余)。HDD海量存储可用RAID6/RAIDZ以节省空间同时容错。
示例:4盘HDD做RAID6(mdadm)可容忍2盘故障,空间为N-2。
确认可选磁盘类型与是否支持按需扩容、快照、私网、异地备份和CDN对接。比较IOPS、带宽峰值、可扩容性与价格。
优先选择提供裸盘挂载或块存储(block storage)的供应商,便于扩展与迁移。
步骤:在控制台创建实例,选择系统盘(SSD 40GB)+数据盘(例如3×4TB HDD或1×10TB)。开启私网与快照功能。
如果支持块存储,按业务增量添加块盘,避免频繁重建实例。
列出磁盘:lsblk 或 fdisk -l。示例,对新盘 /dev/sdb:
分区并格式化(简单示例):
sudo parted /dev/sdb --script mklabel gpt mkpart primary 0% 100%
sudo mkfs.xfs -f /dev/sdb1 (或 mkfs.ext4 /dev/sdb1)
创建挂载点并挂载:
sudo mkdir -p /data/media
sudo mount -o noatime,nodiratime,barrier=1 /dev/sdb1 /data/media
永久挂载:编辑 /etc/fstab,加入 UUID=`blkid -s UUID -o value /dev/sdb1` /data/media xfs defaults,noatime 0 2
若使用多盘做卷组:sudo pvcreate /dev/sdc1 /dev/sdd1;sudo vgcreate vg_media /dev/sdc1 /dev/sdd1;sudo lvcreate -n lv_media -l 100%VG vg_media;sudo mkfs.xfs /dev/vg_media/lv_media;挂载。
使用mdadm做RAID6:sudo mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde;然后格式化并挂载。
点播:建议用Nginx + nginx-rtmp 或用HTTP伺服静态切片(HLS)。搭配CDN做全局分发,减轻源站带宽。
缓存:在VPS上使用SSD作转码缓存(/var/cache/transcode),HDD存原始文件,定期将冷数据归档到对象存储(例如S3兼容)用 rclone 或 s3cmd 同步。
快照:在控制台开启定时快照策略,关键时刻快速回滚。备份:使用rsync增量到异地服务器或对象存储,示例crontab:
0 3 * * * rsync -a --delete /data/media/ user@backup.example.com:/backup/media/
监控:部署Prometheus + node_exporter采集磁盘使用率、IOPS、网络带宽并设置告警阈值。
限制SSH访问、使用密钥登录、设置防火墙仅开放必要端口(80/443/1935),对媒体目录使用合理权限和ACL,示例:
sudo chown -R media:media /data/media; sudo chmod -R 750 /data/media
排查磁盘瓶颈:iostat -x 1。若await高,考虑增加SSD缓存或更换更高转速HDD。优化fs挂载参数如noatime、调整XFS/EXT4的inode参数。
当并发增大时,将热点内容推到CDN或使用分层存储避免源站I/O爆炸。
问:选择香港VPS做视频托管,最大难点是什么?
答:主要是保证出口带宽与稳定性、I/O性能与成本平衡。解决方法是:保证带宽或使用CDN做分发、用SSD作缓存/转码盘、HDD做冷存或使用对象存储分层。
问:我应该优先扩容磁盘还是带宽?
答:优先扩容哪项取决瓶颈:若磁盘容量不足或IOPS占满优先扩磁盘;若用户体验受网络抖动影响或频繁高并发溢出则优先扩带宽并接入CDN。建议同时规划弹性扩展策略。
问:如何在预算有限的情况下搭建可用的视频托管平台?
答:采取分层存储——热数据放SSD/高速HDD,冷数据归档到云对象存储;使用按需带宽与CDN按量付费降低源站压力;自动化归档与削峰填谷(转码任务限流),并用开源软件(Nginx/FFmpeg/rclone)减少软件成本。