Thảo luận cách chia sẻ băng thông cho site phim, ảnh

Discussion in 'Thảo Luận Chung' started by Nam, Aug 26, 2019.

  1. Nam

    Nam Sơ Nhập Giang Hồ

    Quá chuẩn và chi tiết luôn. Thank bác. Em lưu lại cho chắc, lỡ 4r sập :D

    Cho em hỏi ai để bảng giá ơ rô là không bị dmca hả bác
     
  2. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Xin chào tất cả anh em!
    Trước tiên xin gửi đến anh em lời chúc sức khỏe và thành công trong cuộc sống.
    Quay trở lại vấn đề chính.
    Tại post: http://cafemmo.club/threads/giai-phap-cdn-cho-site-anh.2279/page-5, mình có chia sẻ cách cài đặt và cấu hình chia tải cho site phim.
    Copy lại nôi dung chia sẻ như sau(không thảo luận vấn đề DMCA tại đây nhé):
    Xin mời anh em góp ý và chia sẻ. Cảm ơn anh em.


    Tóm tắt như sau:
    Mình hỏi:
    Em lưu trữ phim ở đâu? Trả lời: VPS hoặc máy chủ, không lưu các dịch vụ trung gian anh ạ(không hỏi lí do phần này, mình tự hiểu cu cậu sợ report hoặc bị xóa).
    Dung lương lưu trữ ước tính hiện tại: Trả lời : 1TB. (cũng bình thường)
    Visit trung bình 1 ngày bao nhiêu? Trả lời 10K visit hiện tại. (có vẻ hơi ít)
    Tiền đâu tư có thể? Trả lời: ít nhất có thể 100$ đến 200$ (bao gồm tất cả lưu trữ, VPS, băng thông anh nhé, mình không hỏi doanh thu của cu cậu, do nó chỉ hỏi vấn đề kỹ thuật).

    Suy nghĩ:
    Sau khi tính toán thì mình ước tính như sau.
    Lưu trữ 1TB phim nên lưu trữ tại block storage, sau này mở rộng nâng cấp hoặc cắm thêm.
    Băng thông trung bình cho 1 visit/ 1 ngày tạm tính 1GB(có thể cao hơn). 10K visit x 1GB = 10TB

    Vậy một tháng nó đốt khoảng 10TB x 30 = 300TB.

    Cũng không cao lắm, nhưng cũng không nhỏ đâu.

    Lựa chọn nhà cung cấp VPS:
    https://www.hetzner. com/cloud , mình quyết định chọn thằng này, tại sao lại như vậy?
    Lưu ý: thằng này để bảng giá tiền euro anh em à.

    Trả lời: Mỗi VPS nó cho tối đa băng thông 20TB, không giới hạn INCOMING TRAFFIC, không tính băng thông Private Network.
    Vậy mình cần 15 VPS trở lên. Lấy con số 16 VPS đi. 20TB X 16 = 320TB là thừa rồi. (vượt quá thì tạo thêm VPS)
    Lưu trữ BLOCK STORAGE VOLUMES cho 1TB ở đây là € 40,96, xấp xỉ 47,9$
    VPS chính: VPS lưu trữ code và database (Mysql) chọn VPS gói tạm 15,9 euro đi (4vCPU - 16GB ram), có gì theo dõi chỉ số CPU, Ram VPS rồi nâng cấp sau, xấp xỉ 18,6$

    15 VPS: 2.49 euro (1vCpu - 1GB ram, băng thông 20TB), thành tiền 2.49 x 15 = 37,35 euro, xấp xỉ 43,5$.

    Tổng tiền: 47,9$ + 18,6$ + 43,5$ = 110$. (đạt giới hạn tiền đầu tư cho phép)

    Cài đặt và cấu hình:
    Đặt tất cả VPS vào 1 network chung. với ip như từ 10.0.0.2 đến 10.0.0.17

    1.Tại VPS chính(chứa source) 10.0.0.2:
    - cài đặt các dịch vụ web nginx, php, mysql.
    - Gắn ổ cứng 1TB vào, mount thành 1 folder để sau này upload phim vào đây(cài đặt sub domain là server.domain.com cho folder này).
    - Cấu hình Nginx split_clients: chuyển tiếp cho 15 VPS
    - Cài đặt NFS Server để chia sẻ folder upload phim cho 15 VPS còn lại.
    - Cài đặt vnStat để kiểm tra băng thông vps

    2. Tại 15 VPS còn lại:
    - Cài đặt nginx và php. (không cài Mysql làm gì cả)
    - Cài đặt NFS Client để mount folder upload phim. Cài đặt mỗi VPS là 1 sub domain từ s1.server.domain.com đến s16.server.domain.com)
    - Cài đặt vnStat để kiểm tra băng thông cho mỗi vps

    3. Kết quả:
    - Mỗi post khi đưa link phim vào (bạn có thể mã hóa hoặc không), link phim có dạng server.domain.com/link-abc.xxx (xxx: là đuôi định dạng phim)
    - Nginx split_clients: server.domain.com sẽ tự động chuyển tiếp đến 15 VPS (s1.server.domain.com đến s16.server.domain.com) còn lại để chia đều traffic.
    - Sau 1 tháng test thử nghiệm cu cậu báo OK. Mình thở phào ổn nhỉ.
    - Băng thông tạm thời chưa vượt quá.

    Cu cậu hỏi thêm, nếu sau này vượt quá băng thông em phải làm gì, trả lời: SNAPSHOTS lại 1 trong 15 VPS 2.49 euro, rồi cấu hình thêm vào là dc.
    Em muốn mở rộng lưu trữ, trả lời: mua thêm BLOCK STORAGE VOLUMES rồi muount vào.

    P/s: chi tiết các bước làm sẽ phức tạp hơn. Mình không thể trình bày rõ. Có thể làm topic riêng nếu anh em yêu cầu.

    Cảm ơn anh em đã đọc. Và mong anh em cho ý kiến.

    Note:
    Xin được note thêm phần mở port NFS. Anh em chỉ cho các IP mạng trong network của mình thôi nhé.
    Ví dụ:
    -A INPUT -s 10.0.0.15/32 -p udp -m state --state NEW -m udp --dport 10053 -j ACCEPT
     
    Last edited: Aug 26, 2019
  3. money

    money Hương Chủ

    Anh hơi dốt khoản cấu hình nên anh thắc mắc xíu:

    1. Làm như này là em mount block storage vào tất cả 16 vps luôn à?
    2. Cách mount như thế nào?
    3. Cái block storage nó có tính băng thông từ storage sang các vps không? Anh đang hiểu là storage nằm trên 1 con con server ở địa chỉ A. Visitor vào vps B xem phim, vậy nó phải stream phim (hay cách nào đó) từ A sang B rồi mới trả về cho visitor xem, đúng không em? Vậy từ A sang B cũng tốn băng thông chứ?
    4. Nếu storage dùng của Hetzner còn vps thuê của OVH được không em? (giả sử thôi, ý anh muốn là 2 provider bất kỳ cho 2 dịch vụ lưu trữ và vps là khác nhau)
     
  4. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Trả lời anh như sau:


    1. Làm như này là em mount block storage vào tất cả 16 vps luôn à?

    Mount block storage thì chỉ VPS chính thôi anh. Không thể mount được block storage cho 2 vps, chứ 16 vps thì ko thể anh à.
    Mình mount block storage vào vps chính, rồi từ vps chính mount folder đó ra 16 VPS còn lại. (nôm na là share thư mục giữa mạng lan)
    # mount -t nfs 10.0.0.2:/home/folder /home/folder


    Cài đặt NFS chia sẻ folder block storage cho các VPS còn lại.
    howtoforge. com/nfs-server-and-client-on-centos-7

    Mở các cổng cần thiết cho NFS.
    prefetch. net/blog/2010/11/02/firewalling-a-linux-nfs-server-with-iptables/
    2. Cách mount như thế nào?

    Phía bên trên e đã có link hướng dẫn.
    Em xin trình bày thêm 1 chút.
    2.1 Cách mount.
    Sau khi em mua ở cứng gắn ngoài thì thằng hetzner cho e lệnh để gắn nó vào vps chính.
    Em đăng nhập SSH, nhập lệnh vào.

    Sau đó kiểm tra gõ :
    df -kh

    Thấy tên ở cứng cắm ngoài với đúng dung lượng mình mua.
    Giờ em sẽ mount vào thư mục để có thêm xem trên eXtplorer: /home/newdisk
    Vì em cài eXtplorer, muốn xem trên trình duyệt cho dễ.

    Tạo thư muc newdisk: mkdir /home/newdisk
    Cần chmod thư mục /home/newdisk là 777

    chmod -R 777 /home/newdisk
    rồi mount. Gõ lệnh dưới.

    *****Mount block storage vào thư mục newdisk*****
    mount -t auto /dev/sdb /home/newdisk
    Tạo 1 file bất kỳ trong /home/newdisk . Vào SSH kiểm tra trong ở block storage đã có là ok.

    Tự động mount nếu mỗi lần reboot lại
    ****auto mount khi reboot****
    nano /etc/fstab
    /dev/sdb /home/newdisk ext4 defaults 0 0

    2.2 Cài đặt NFS
    Mục đích mount 1 folder trên vps chính để chia sẻ cho các vps ( yêu cầu phải cùng Network)
    Link tham khảo:


    howtoforge. com/nfs-server-and-client-on-centos-7
    Mở các cổng cần thiết cho NFS.
    prefetch. net/blog/2010/11/02/firewalling-a-linux-nfs-server-with-iptables/



    3. Cái block storage nó có tính băng thông từ storage sang các vps không? Anh đang hiểu là storage nằm trên 1 con con server ở địa chỉ A. Visitor vào vps B xem phim, vậy nó phải stream phim (hay cách nào đó) từ A sang B rồi mới trả về cho visitor xem, đúng không em? Vậy từ A sang B cũng tốn băng thông chứ?

    Tất cả các VPS cùng nằm chung 1 nhà cung cấp(Hetzner), cùng 1 networks, Hetzner không tính băng thông qua lại giữa các vps cùng 1 networks. ( hiểu nôm ná nó là mạng lan nội bộ)
    [​IMG]


    Anh đang hiểu là storage nằm trên 1 con con server ở địa chỉ A. Visitor vào vps B xem phim, vậy nó phải stream phim (hay cách nào đó) từ A sang B rồi mới trả về cho visitor xem, đúng không em? Vậy từ A sang B cũng tốn băng thông chứ?

    Khi anh mount được thư mục chứa film ở vps chính vào tất các vps còn loại, thì thư mục chứa film đã nằm ở tất cả các VPS. Anh hiểu đơn giản là share thư mục giữa các máy tính trong mạng lan vậy.
    Nên từ A sang B thì thằng hetzner không tính, kể cả vultr cũng không tính.
    [​IMG]


    4. Nếu storage dùng của Hetzner còn vps thuê của OVH được không em? (giả sử thôi, ý anh muốn là 2 provider bất kỳ cho 2 dịch vụ lưu trữ và vps là khác nhau)

    Hai nhà cung cấp khác nhau thì không được anh à. Yêu cầu phải cùng 1 nhà cung cấp và đặt Network cho tất cả các vps.

    Mạn phép trả lời anh @money đã xong.
     
    Last edited: Aug 26, 2019
    money likes this.
  5. Nai

    Nai MiddleMan Staff Member

    Nhờ câu trả lời của thớt đối với câu hỏi của anh Money nên mình đã hiểu.
     
  6. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    @Nai còn gì thắc mắc cứ thảo luận nhé. Mà dạo này ko thấy hỏi paypal nhỉ. hihi.
     
  7. Nai

    Nai MiddleMan Staff Member

    À là anh à, kinh nghiệm 1 bụng vầy mà sao mấy bữa bán paypal keo thế =))
     
    xmenvn2510 likes this.
  8. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Haha, a keo chỗ nào nhỉ? Bán tỷ giá 22 từ năm nọ sang năm kia mà. Phải nói là rẻ chứ.
     
  9. money

    money Hương Chủ

    @xmenvn2510 thank you tình yêu. Anh hiểu rồi.
     
    xmenvn2510 likes this.
  10. Nai

    Nai MiddleMan Staff Member

    Ý là ko đủ để bán ấy mà, chứ ko phải về rate.
     
  11. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Cám ơn anh. Thực sự từ ý tưởng đến lúc e thực hiện cho cu em site phim, em thức mấy đêm để cấu hình.
    Nhiều lúc đầu óc cũng căng với tất cả những câu hỏi, mà giờ anh em đang hỏi.
     
    money likes this.
  12. money

    money Hương Chủ

    "Cu em" là thằng em của em hay cờ u của em? Anh cảm thấy căng thẳng cmnr :)
     
    xmenvn2510 likes this.
  13. sincos

    sincos Bang Chúng

    Như vậy con VPS được mout I/O có bị overload không nhỉ. 16 con chỉa vào 1 đọc data cơ mà.
     
    Nai likes this.
  14. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Ah, a mở dịch vụ upload file và chia sẻ kiếm tiền, link rút gọn, viết bài. Nên trả tiền paypal cho user, nhiều khi còn phải đi mua paypal. Tháng nào lãi được chút mới dư bán.
     
    Nai likes this.
  15. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Câu hỏi này khá hay bro ah, ổ cứng gắn ngoài là SSD nhưng overload là điều chắc chắn xảy ra.
    Giải pháp sao ta:
    Trả lời: sau này mình đã bảo cậu em nên chia ra 10 ổ cứng 100GB thì ngon hơn hẳn, hình như thằng hetzner. com cho tối đa 10 ổ cứng gắn thêm. Hiện tại cu e mới dùng 5 ổ cứng gắn ngoài chơi hẳn 500GB cho dư luôn.
     
    Last edited: Aug 26, 2019
    sincos likes this.
  16. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    @money , @Nai , @sincos : cảm ơn anh em đã thảo luận, mọi câu hỏi của anh em đều là những góp ý cực tốt, để có phương án dự phòng sau này. Không có ý tưởng nào là tuyệt đối, nếu không có góp ý thì chúng ta sẽ thất bại về lâu dài. Mọi thứ luôn thay đổi.
     
  17. Nai

    Nai MiddleMan Staff Member

    5 ổ cứng này anh có cấu hình RAID ko anh? Nếu có thì ok, còn không thì vẫn có khả năng bị I/O overload
     
  18. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Câu hỏi này xin phép chưa có câu trả lời. Để a nghiên cứu thêm nhé. Cơ bản chưa thấy user xem kêu chậm. Chắc lúc overload thì visit khủng lắm và thóc cũng nhiều.

    Bí quá nếu không có giải pháp thì bắt buộc phải dùng CDN thì giá chát cũng phải chịu.
     
  19. Sói

    Sói Administrator Staff Member

    @Hoa Mãn Lâu sao anh Move Up cái post của thớt để lên trên cùng mà không được vậy em? Vì lúc nãy anh move 1 post sang thì nó lại default nằm ở trên cùng, nhìn kỳ quá :) Giờ muốn move up post của thớt lên mà nó không up.
     
    xmenvn2510 likes this.
  20. sincos

    sincos Bang Chúng

    Vụ Raid đừng quá quan tâm vì nó là Cloud rồi nên không lo Block Storage (BS) overload, mình lo con server được mount kìa. Dù tách ra BS thì khi đọc data con Main server vẫn phải read để share cho mấy con worker kia.


    Nhưng có @xmenvn2510 làm chuột bạch và báo cáo kết quả thế này rồi nên cũng yên tâm chút.
     
    Nai, Thanh Nguyen and xmenvn2510 like this.