Skip to content

نظام التخزين ​

يوفر SirrMesh خيارات تخزين مرنة، تدعم خلفيات تخزين متعددة من أنظمة الملفات المحلية إلى تخزين الكائنات السحابية.

أنواع التخزين ​

التخزين المحلي ​

أبسط طريقة تخزين، مناسبة للنشر أحادي الخادم.

toml
[storage]
type = "local"
local_path = "/var/mail"

التخزين المتوافق مع S3 ​

يدعم AWS S3 وجميع تخزينات الكائنات المتوافقة مع S3.

toml
[storage]
type = "s3"

[storage.s3]
endpoint = "s3.amazonaws.com"
region = "us-east-1"
bucket = "sirrchat-storage"
access_key = "YOUR_ACCESS_KEY"
secret_key = "YOUR_SECRET_KEY"

MinIO ​

تخزين مفتوح المصدر متوافق مع S3.

toml
[storage.s3]
endpoint = "minio.example.com:9000"
bucket = "sirrchat"
access_key = "minioadmin"
secret_key = "minioadmin"
use_ssl = false

تخزين قاعدة البيانات ​

PostgreSQL ​

موصى به لبيئات الإنتاج.

toml
[database]
type = "postgres"
dsn = "postgresql://user:password@localhost:5432/sirrchat?sslmode=require"

# تكوين تجميع الاتصال
max_open_conns = 25
max_idle_conns = 5
conn_max_lifetime = "5m"

MySQL/MariaDB ​

قاعدة بيانات علائقية مستخدمة على نطاق واسع.

toml
[database]
type = "mysql"
dsn = "user:password@tcp(localhost:3306)/sirrchat?parseTime=true&charset=utf8mb4"

SQLite ​

مناسب للتطوير والنشر على نطاق صغير.

toml
[database]
type = "sqlite"
dsn = "/var/lib/sirrmeshd/sirrchat.db"

تنسيق تخزين البريد الإلكتروني ​

Maildir ​

تنسيق تخزين البريد الإلكتروني القياسي، ملف واحد لكل بريد إلكتروني.

/var/mail/[email protected]/
  ├── cur/     # رسائل البريد الإلكتروني المقروءة
  ├── new/     # رسائل البريد الإلكتروني الجديدة
  └── tmp/     # ملفات مؤقتة

تسمية الملفات ​

1642123456.M123456P12345.hostname,S=1234:2,S
  • الطابع الزمني
  • معرف فريد
  • الحجم
  • الأعلام (مقروء، مرد عليه، إلخ)

تحسين التخزين ​

الضغط ​

ضغط تلقائي لرسائل البريد الإلكتروني القديمة لتوفير المساحة.

toml
[storage.compression]
enabled = true
algorithm = "gzip"  # gzip، bzip2، zstd
min_age_days = 30   # الضغط بعد 30 يومًا

إلغاء التكرار ​

كشف وإزالة رسائل البريد الإلكتروني المكررة تلقائيًا.

toml
[storage.deduplication]
enabled = true
hash_algorithm = "sha256"

التخزين المتدرج ​

ترحيل البيانات تلقائيًا بناءً على تكرار الوصول.

toml
[storage.tiering]
enabled = true

# التخزين الساخن: يتم الوصول إليه بشكل متكرر
[storage.tiering.hot]
type = "local"
path = "/fast/ssd/mail"
max_age_days = 30

# التخزين البارد: أرشفة
[storage.tiering.cold]
type = "s3"
bucket = "sirrchat-archive"

إدارة الحصص ​

حصص المستخدم ​

toml
[storage.quota]
default_quota = "1GB"
max_quota = "10GB"
warning_threshold = 90  # تحذير عند 90٪

تعيين حصة المستخدم ​

bash
sirrmeshd quota set --user [email protected] --quota 5GB

عرض استخدام الحصة ​

bash
sirrmeshd quota get --user [email protected]

النسخ الاحتياطي والاسترداد ​

النسخ الاحتياطي التلقائي ​

toml
[storage.backup]
enabled = true
schedule = "0 2 * * *"  # يوميًا في الساعة 2 صباحًا
retention_days = 30

[storage.backup.destination]
type = "s3"
bucket = "sirrchat-backups"

النسخ الاحتياطي اليدوي ​

bash
# نسخ احتياطي لجميع البيانات
sirrmeshd backup create --output /backups/sirrchat-$(date +%Y%m%d).tar.gz

# نسخ احتياطي لمستخدم محدد
sirrmeshd backup create --user [email protected]

استعادة البيانات ​

bash
# استعادة جميع البيانات
sirrmeshd backup restore --input /backups/sirrchat-20250115.tar.gz

# استعادة مستخدم محدد
sirrmeshd backup restore --user [email protected] --input backup.tar.gz

ترحيل البيانات ​

الترحيل من خوادم البريد الأخرى ​

من Postfix/Dovecot ​

bash
sirrmeshd migrate --from maildir --source /var/mail/vhosts

من Exchange ​

bash
sirrmeshd migrate --from pst --source /exports/*.pst

ترحيل خلفية التخزين ​

الترحيل من المحلي إلى S3:

bash
sirrmeshd storage migrate --from local --to s3

المراقبة والصيانة ​

إحصائيات استخدام التخزين ​

bash
sirrmeshd storage stats

الإخراج:

الحجم الإجمالي: 125.5 GB
المستخدمون: 1,234
المتوسط لكل مستخدم: 104.2 MB
أكبر مستخدم: [email protected] (5.2 GB)

عمليات التنظيف ​

حذف رسائل البريد الإلكتروني منتهية الصلاحية ​

bash
sirrmeshd cleanup --older-than 2y

تنظيف سلة المهملات ​

bash
sirrmeshd cleanup --trash --older-than 30d

تنظيف الملفات المؤقتة ​

bash
sirrmeshd cleanup --temp

تحسين الأداء ​

تكوين ذاكرة التخزين المؤقت ​

toml
[storage.cache]
enabled = true
size_mb = 512
ttl = "1h"

تحسين الفهرس ​

toml
[storage.indexing]
enabled = true
full_text_search = true

التحكم في التزامن ​

toml
[storage.concurrency]
max_workers = 10
queue_size = 1000

أمان البيانات ​

التشفير ​

تشفير النقل ​

toml
[storage.encryption]
# تشفير نقل S3
s3_use_tls = true

التشفير في حالة السكون ​

toml
[storage.encryption]
enabled = true
algorithm = "AES-256-GCM"
key_file = "/etc/sirrmeshd/encryption.key"

التحكم في الوصول ​

toml
[storage.access]
# تقييد مسارات الوصول
allow_paths = ["/var/mail"]
deny_paths = ["/etc", "/root"]

التوفر العالي ​

النسخ المتماثل ​

النسخ المتماثل الرئيسي-الثانوي ​

toml
[storage.replication]
mode = "master"
slaves = ["slave1.example.com", "slave2.example.com"]

النسخ المتماثل متعدد الرئيسيات ​

toml
[storage.replication]
mode = "multi-master"
peers = ["peer1.example.com", "peer2.example.com"]

التبديل الاحتياطي ​

toml
[storage.failover]
enabled = true
health_check_interval = "30s"
auto_failover = true

استكشاف الأخطاء وإصلاحها ​

أدوات التشخيص ​

bash
# التحقق من اتصال التخزين
sirrmeshd storage test

# التحقق من سلامة البيانات
sirrmeshd storage verify

# إصلاح صناديق البريد التالفة
sirrmeshd storage repair --user [email protected]

المشاكل الشائعة ​

مساحة القرص غير كافية ​

bash
# تنظيف رسائل البريد الإلكتروني القديمة
sirrmeshd cleanup --older-than 1y

# ضغط رسائل البريد الإلكتروني
sirrmeshd storage compress

فشل اتصال S3 ​

bash
# اختبار اتصال S3
sirrmeshd storage test --type s3

# عرض الأخطاء التفصيلية
sirrmeshd storage test --debug

الوثائق ذات الصلة:

Released under the GPL 3.0 License.