Mastodon कैश हटाकर स्टोरेज क्षमता कम करना और MinIO और LocalStack की बात

5 min

language: ja bn de en es fr hi ko pt ru zh-cn zh-tw

नमस्ते, मैं अक्षम हूँ।
Mastodon इंस्टेंस बनाते समय एक समस्या जो हमेशा सामने आती है, वह है स्टोरेज की समस्या।
चूंकि यह अन्य सभी सर्वर की जानकारी भी प्राप्त कर लेता है, इसलिए इसकी बढ़ती हुई मात्रा को रोकना मुश्किल है।
इसलिए, मुझे एक अच्छा स्क्रिप्ट मिला।

Bash में स्क्रिप्टिंग

ऐसा लगता है कि Mastodon v4.1 के बाद से उपलब्ध tootctl नामक एक उपकरण का उपयोग करके इन्हें एक साथ हटाया जा सकता है।
Improving Mastodon’s disk usage
इसलिए, मैंने इसे 1 दिन में बदल दिया और नीचे दिए गए अनुसार कॉपी-पेस्ट किया।

#!/bin/bash

# Prune remote accounts that never interacted with a local user
RAILS_ENV=production /home/sns/mastodon/bin/tootctl accounts prune;

# Remove remote statuses that local users never interacted with older than 1 days
RAILS_ENV=production /home/sns/mastodon/bin/tootctl statuses remove --days 1;

# Remove media attachments older than 1 days
RAILS_ENV=production /home/sns/mastodon/bin/tootctl media remove --days 1;

# Remove all headers (including people I follow)
RAILS_ENV=production /home/sns/mastodon/bin/tootctl media remove --remove-headers --include-follows --days 0;

# Remove link previews older than 1 days
RAILS_ENV=production /home/sns/mastodon/bin/tootctl preview_cards remove --days 1;

# Remove files not linked to any post
RAILS_ENV=production /home/sns/mastodon/bin/tootctl media remove-orphans;

इसमें बहुत समय लगता है, इसलिए मैं अभी यह नहीं बता सकता कि कितनी स्टोरेज खाली होगी ^^;

आदर्श होम ऑब्जेक्ट स्टोरेज

हाल ही में, मैं एक अलग स्टोरेज सर्वर रखने पर विचार कर रहा हूँ, जो मेरे प्रोडक्शन सर्वर से अलग होगा।
कारण इस प्रकार हैं:

  • जब बड़ी फ़ाइलें एक अलग डिस्क पर रखी जाती हैं, तो डिस्क के खराब होने पर Linux कर्नेल से डिस्क I/O त्रुटि के कारण सिस्टम अटक जाता है।
  • फ़ाइल सिस्टम निर्भरता से मुक्ति
  • निष्पादन योग्य बाइनरी से अलग रखना अधिक स्पष्ट है।

और भी कारण हैं, लेकिन संक्षेप में, वे ऊपर बताए गए हैं।
विशेष रूप से, मैंने सीखा है कि पहले बिंदु में I/O त्रुटि रीबूट के दौरान भी सिस्टम को अटका सकती है, जिससे सीधे डिस्क को हटाने की आवश्यकता हो सकती है (हालांकि कर्नेल पैरामीटर को बदलकर और इसे फिर से बनाकर इससे बचा जा सकता है), इसलिए इसे करना आवश्यक लगता है।

फ़ाइल सिस्टम निर्भरता से मुक्ति के संबंध में, मैं एक मजबूत ZFS का उपयोग करना चाहता हूँ, लेकिन Linux वातावरण में उपलब्ध ZFS एक छद्म प्रतिलिपि है और इसलिए यह एक पूर्ण ZFS नहीं है।
यदि आप ZFS का उपयोग करना चाहते हैं, तो आपको FreeBSD वातावरण स्थापित और उपयोग करना होगा।
RAID के संबंध में, यह और भी जटिल है, और यदि RAID कार्ड खराब हो जाता है तो डेटा को पुनर्प्राप्त करना असंभव हो सकता है, इसलिए मैं इसका उपयोग नहीं करूँगा।
इसलिए, मैं ऑब्जेक्ट स्टोरेज सर्वर के रूप में FreeBSD का उपयोग करना चाहता हूँ।

निष्पादन योग्य बाइनरी से अलग रखना अधिक स्पष्ट है, इसका मतलब केवल यह है कि वितरित प्रणालियों को ध्यान में रखते हुए, मैं Plan9 जैसे एक सामान्य-उद्देश्यीय स्टोरेज क्षेत्र के रूप में एक अलग वातावरण स्थापित करना चाहता हूँ।
क्योंकि यदि आप केवल प्रोग्राम चलाते हैं, तो आपको सैकड़ों GB या कई TB की आवश्यकता नहीं होगी।

MinIO और LocalStack

LocalStack AWS S3 का अनुकरण कर सकता है, लेकिन ऐसा लगता है कि मुफ्त संस्करण स्थायी नहीं है और इसकी सीमाएँ हैं।
एक अधिक OSS ऑब्जेक्ट स्टोरेज के रूप में, यदि आप इसे वास्तव में सर्वर पर स्थापित करना चाहते हैं, तो MinIO बेहतर लगता है।
LocalStack : AWS S3 के नकली वातावरण का अस्थायी रूप से उपयोग करने के लिए, जैसे विकास वातावरण में।
MinIO : यदि आप एक ऑब्जेक्ट स्टोरेज सर्वर स्थापित करना चाहते हैं।
ऐसा लगता है कि आपको इन दोनों के बीच अंतर करना चाहिए।
इसलिए, मैं एक MinIO सर्वर स्थापित करूँगा।


तो फिर मिलते हैं। धन्यवाद।

Related Posts