helmi
(Helmi)
12 فبراير 2025، 12:30م
1
نحن نقوم بتشغيل تثبيت Discourse أكبر على إعداد VPS يعمل بشكل جيد جدًا بالنسبة لنا. من حيث أداء وحدة المعالجة المركزية/الذاكرة، لدينا متسع. ومع ذلك، فإن مساحة القرص تمثل مشكلة إلى حد ما - ليس في العمل اليومي ولكن عندما يتعلق الأمر بترقية Postgres على سبيل المثال (ترقية 13-> 15 معلقة بسبب ذلك) نحن نفتقر إلى المساحة ولا يمكننا التوسع بسهولة.
أعلم أن هناك خيارات أخرى لتحديث postgres ولكن اعتبر هذا بمثابة سؤال عام.
نحن نعمل على Hetzner حيث تتوفر مساحة تخزين الشبكة بسهولة للاستخدام المؤقت.
على خادم الاختبار الخاص بنا، ألعب الآن بجعله يعمل بطريقة مؤقتة - أولاً لاستعادة نسخة احتياطية من الموقع المباشر، ثم لاحقًا لاختبار ترقية Postgres. حتى الآن لم أكن ناجحا.
لقد حاولت بالفعل استخدام الروابط الرمزية ولكنني لاحظت أنها لم تنجح وقرأت أيضًا هنا في مكان ما أنها ليست الطريقة الموصى بها. لقد حاولت أيضًا نقل مشاركة /shared من /var/discourse/shared/standalone إلى /mnt/ext-storage/standalone ونقلت الملفات إلى هناك - لسوء الحظ ليس بدون مشاكل. لا يمكنني حتى إنهاء البناء.
هل هناك أي طريقة تعمل في هذه الأنواع من الحالات؟ أنا أدرك أن أداء المحرك أسوأ بكثير من المحرك المحلي ولكنني لا أخطط لتشغيل المنتدى عليه. أود حقًا أن أحصل على طريقة مريحة لاستخدامها في سيناريوهات معينة.
pfaffman
(Jay Pfaffman)
12 فبراير 2025، 2:31م
2
إذا كان هدفك هو إجراء الترقية، فإن أسهل شيء هو تشغيل جهاز افتراضي جديد والانتقال إليه. تتجاوز الحاجة إلى ترقية قاعدة البيانات وتحصل على نظام تشغيل جديد على جهازك الافتراضي، والذي من المحتمل أن تحتاج إلى القيام به على أي حال.
اتبع نقل موقع Discourse إلى خادم افتراضي خاص آخر باستخدام rsync ولا تقم بنسخ قاعدة البيانات (ولكن نعم، قم بنسخ التحميلات وشهادات Let’s Encrypt والشهادات الأخرى.
إذا كانت النسخ الاحتياطية الخاصة بك على S3، فمن السهل جدًا تجميد النسخة القديمة، وإنشاء نسخة احتياطية، واستعادة النسخة الاحتياطية على الجهاز الجديد.
إذا كان لدى Hetzner نوع من عناوين IP الدائمة التي يمكن تعيينها لخوادم مختلفة، فلن تحتاج حتى إلى تغيير نظام أسماء النطاقات (DNS).
تريد أن تعرف أنه يمكنك بناء خادم جديد بحيث إذا اضطررت لسبب ما في أي وقت، فستكون قادرًا على القيام بذلك. هذه فرصة مثالية للممارسة.
helmi
(Helmi)
12 فبراير 2025، 2:41م
3
في الواقع، هذا ليس خيارًا. لا ينفد المساحة للاحتياجات اليومية على أي حال. كما أننا نستخدم حاليًا مساحة 600 جيجابايت ونستخدم ~50%. لا يوجد خيار أكبر - على الأقل ليس على Hetzner.
لهذا السبب سألت صراحة عن القرص الخارجي.
هل قمت بتشغيل ./launcher cleanup app من باب الفضول؟ هل لم يحرر ذلك مساحة كافية لإجراء الترقية في مكانها؟
إعجاب واحد (1)
helmi
(Helmi)
12 فبراير 2025، 3:00م
5
هل يجب أن يهم ذلك من أجل إعادة البناء؟ سأفهم الأمر إذا كان إعادة تشغيل بسيطة، ولكن من أجل إعادة البناء؟
pfaffman
(Jay Pfaffman)
12 فبراير 2025، 3:01م
6
لم أكن أقترح الانتقال إلى قرص أكبر، فقط الحصول على سيرفر جديد تمامًا مثل ذلك. قم بتثبيت Discourse، واستعادة قاعدة البيانات الخاصة بك.
هذا سؤال جيد جدًا.
نعم. كل عملية إعادة بناء تنشئ حاوية جديدة وكل واحدة منها تستهلك مساحة. إذا لم تفعل ذلك من قبل، يمكنك أن توفر عشرات الجيجابايتات.
إعجاب واحد (1)
لترقية قاعدة البيانات، تحتاج إلى كل المساحة التي يمكنك الحصول عليها. لذا نعم. أقول إنها مهمة.
Falco
(Falco)
12 فبراير 2025، 3:49م
8
دليل التحديث الخاص بنا يتضمن دليلًا لحالتك المحددة
Mwaniki Wairungu، المنشور:1، الموضوع:349515، اسم المستخدم:mwaniki:
إجراء تحديث يدوي / بيئات مقيدة بالمساحة
إذا كنت في بيئة ذات مساحة محدودة بدون أي وسيلة للحصول على مساحة إضافية، يمكنك محاولة ما يلي:
./launcher stop app #(أو كل من web_only و data إذا كانت الحالة لديك)
mkdir -p /var/discourse/shared/standalone/postgres_data_new
docker run --rm \
--entrypoint=/bin/bash \
-v /var/discourse/shared/standalone/postgres_data:/var/lib/postgresql/13/data \
-v /var/discourse/shared/standalone/postgres_data_new:/var/lib/postgresql/15/data \
tianon/postgres-upgrade:13-to-15 \
-c "apt-get update 66 apt-get install -y postgresql-13-pgvector postgresql-15-pgvector 66
docker-upgrade"
mv /var/discourse/shared/standalone/postgres_data /var/discourse/shared/standalone/postgres_data_old
mv /var/discourse/shared/standalone/postgres_data_new /var/discourse/shared/standalone/postgres_data
docker run --rm -v /var/discourse/shared/standalone:/shared \
local_discourse/app chown -R postgres:postgres /shared/postgres_data #(أو local_discourse/data)
./launcher rebuild app #(أو أولا البيانات ثم web_only إذا كانت الحالة لديك)
حسب تجاربي، يتطلب هذا الإجراء ما يقل عن ضعف حجم قاعدة البيانات الحالية من المساحة الحرة.
لقد أضفنا هذا الخيار للأشخاص في موقفك نفس. فقط تأكد من تخزين نسخة احتياطية خارج الموقع قبل محاولة هذا!
إعجابَين (2)
pfaffman
(Jay Pfaffman)
12 فبراير 2025، 6:11م
9
إذا كنت تستخدم جهازًا افتراضيًا، فمن الأسهل بكثير الانتقال إلى جهاز جديد، وهناك العديد من الفوائد. إليك بعض منها:
لا يوجد خطر - إذا حدث خطأ ما، فلا يزال لديك الخادم القديم الخاص بك
لا يوجد وقت تعطل - قراءة فقط على الخادم القديم
تحصل على ترقية نظام التشغيل التي ربما تحتاجها على أي حال
يمكنك التحقق من أنك تعرف كيفية تشغيل خادم جديد في حالة وقوع كارثة
لا تحتاج إلى إعادة الفهرسة والتنظيف
إعجاب واحد (1)
helmi
(Helmi)
13 فبراير 2025، 8:29ص
10
أقدر نصيحتكم يا رفاق.
شكرًا، هذا هو الخيار الآخر الذي ذكرت أنني على علم به. شكرًا على الإشارة إليه على أي حال.
لا أشك في ذلك - ومع ذلك، كنت أود استكشاف خيار إضافة مساحة تخزين إضافية لمهام الصيانة إذا لزم الأمر.
إعجابَين (2)
pfaffman
(Jay Pfaffman)
13 فبراير 2025، 10:20ص
11
قد يكون من المفيد الاحتفاظ بتحميلاتك، أو على سبيل المثال /var/discourse/shared/web_only على مساحة تخزين شبكية. تحتاج إلى تحرير ملف yml للإشارة إليه بدلاً من استخدام رابط رمزي (الرابط الرمزي لا يعمل لأن الحاوية لا يمكنها الوصول إلى المكان الذي يشير إليه الرابط الرمزي الخاص بك).
بعد ذلك، إذا انتقلت إلى جهاز افتراضي جديد، يمكنك ببساطة إعادة تحميل مساحة تخزين الشبكة هذه بدلاً من نسخها.
لا أوصي بتخزين الشبكة لقاعدة البيانات لأنها أبطأ.
إعجاب واحد (1)
Ed_S
(Ed S)
13 فبراير 2025، 2:06م
12
أعتقد أنه من المفيد تفصيل استخدامك. قد لا يكون حجم قاعدة البيانات الفعلي كبيرًا جدًا، إذا كان معظم استخدامك عبارة عن تحميلات، وجزء قاعدة البيانات فقط يتطلب مساحة أكبر بثلاث مرات تقريبًا أثناء الترقية.
يمكنك التحقق من الحجم النسبي للنسخة الاحتياطية مع التنزيلات مقارنة بنسخة احتياطية بدون تنزيلات.
أو، استخدم سطر الأوامر. إليك بعض المخرجات من منتدانا الصغير إلى حد ما:
root@rc-debian-hel:~# free -m
total used free shared buff/cache available
Mem: 3813 1631 267 492 1915 1504
Swap: 4095 730 3365
root@rc-debian-hel:~# swapon
NAME TYPE SIZE USED PRIO
/var/local/swap/swapfile.1 file 1024M 730.2M -2
/var/local/swap/swapfile.3 file 1024M 136K -3
/var/local/swap/swapfile.0 file 1024M 0B -4
/var/local/swap/swapfile.2 file 1024M 0B -5
root@rc-debian-hel:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 382M 1.2M 381M 1% /run
/dev/sda1 38G 22G 14G 62% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 253M 6.3M 246M 3% /boot/efi
overlay 38G 22G 14G 62% /var/lib/docker/overlay2/68abab42f48040e0dfc03d3c9fc893dfa3e7fb01ba1b2215731668339bbc3766/merged
tmpfs 382M 0 382M 0% /run/user/0
بالنظر عن كثب:
root@rc-debian-hel:~# du -kx / | sort -n | tail -33
767000 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554/diff/home/discourse/.local/share/pnpm
767004 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554/diff/home/discourse/.local/share
767020 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554/diff/home/discourse/.local
795804 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554/diff/home/discourse
795808 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554/diff/home
833836 /var/discourse/shared/standalone/postgres_data
884648 /var/discourse/shared/standalone/uploads/default/original
978000 /usr/lib/modules
991644 /var/lib/docker/overlay2/68abab42f48040e0dfc03d3c9fc893dfa3e7fb01ba1b2215731668339bbc3766/diff
991664 /var/lib/docker/overlay2/68abab42f48040e0dfc03d3c9fc893dfa3e7fb01ba1b2215731668339bbc3766
1025164 /var/discourse/shared/standalone/uploads/default/optimized
1146528 /usr/lib/firmware
1350496 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554/diff
1350512 /var/lib/docker/overlay2/8b6ac2d69a1fa195285e61aba2876484a69fd2a19032c2f4def1c4adb02d6554
1909816 /var/discourse/shared/standalone/uploads/default
1919380 /var/discourse/shared/standalone/uploads
2471968 /usr/lib
2506940 /var/log/journal/82e4cf9bff9748d090b41e6d336353eb
2515140 /var/log/journal
2592200 /var/log
3029428 /usr
3839148 /var/discourse/shared/standalone/backups/default
3839152 /var/discourse/shared/standalone/backups
4194324 /var/local/swap
4194328 /var/local
5171844 /var/lib/docker/overlay2
5217052 /var/lib/docker
5455612 /var/lib
6682972 /var/discourse/shared/standalone
6682976 /var/discourse/shared
6685716 /var/discourse
19041368 /var
23037264 /
root@rc-debian-hel:~# du -kx /var/discourse/shared/ | sort -n | tail -33
42312 /var/discourse/shared/standalone/uploads/default/original/2X/f
42448 /var/discourse/shared/standalone/uploads/default/original/2X/1
42548 /var/discourse/shared/standalone/uploads/default/original/2X/6
43380 /var/discourse/shared/standalone/uploads/default/optimized/2X/2
44148 /var/discourse/shared/standalone/uploads/default/optimized/2X/5
44340 /var/discourse/shared/standalone/uploads/default/optimized/2X/1
45240 /var/discourse/shared/standalone/uploads/default/optimized/2X/e
46648 /var/discourse/shared/standalone/uploads/default/optimized/2X/c
49516 /var/discourse/shared/standalone/uploads/default/optimized/2X/8
49772 /var/discourse/shared/standalone/uploads/default/optimized/2X/9
49932 /var/discourse/shared/standalone/log/var-log/nginx
50788 /var/discourse/shared/standalone/uploads/default/optimized/2X/0
55428 /var/discourse/shared/standalone/uploads/default/optimized/2X/d
55844 /var/discourse/shared/standalone/uploads/default/optimized/2X/f
57548 /var/discourse/shared/standalone/uploads/default/optimized/2X/6
77280 /var/discourse/shared/standalone/log/var-log
81928 /var/discourse/shared/standalone/postgres_data/pg_wal
84064 /var/discourse/shared/standalone/log
294384 /var/discourse/shared/standalone/uploads/default/optimized/1X
325068 /var/discourse/shared/standalone/uploads/default/original/1X
559576 /var/discourse/shared/standalone/uploads/default/original/2X
724684 /var/discourse/shared/standalone/postgres_data/base/16384
730776 /var/discourse/shared/standalone/uploads/default/optimized/2X
749424 /var/discourse/shared/standalone/postgres_data/base
833836 /var/discourse/shared/standalone/postgres_data
884648 /var/discourse/shared/standalone/uploads/default/original
1025164 /var/discourse/shared/standalone/uploads/default/optimized
1909816 /var/discourse/shared/standalone/uploads/default
1919380 /var/discourse/shared/standalone/uploads
3839148 /var/discourse/shared/standalone/backups/default
3839152 /var/discourse/shared/standalone/backups
6682972 /var/discourse/shared/standalone
6682976 /var/discourse/shared/
إعجابَين (2)
helmi
(Helmi)
13 فبراير 2025، 2:21م
13
كان يجب أن أكون أكثر دقة في البداية ولكن لم أتوقع الحصول على مثل هذه التعليقات الواسعة الانتشار.
تحميلاتنا ونسخنا الاحتياطية موجودة على S3. حجم قاعدة البيانات على النظام المباشر يبلغ حوالي 230 جيجابايت الآن. النسخ الاحتياطية المضغوطة تبلغ حوالي 25 جيجابايت أعتقد.
4 إعجابات
Falco
(Falco)
13 فبراير 2025، 4:16م
14
واو، هذه واحدة من الكبيرة! بهذا الحجم، تكون عمليات قاعدة البيانات عادةً أكثر إزعاجًا بالفعل.
إعجابَين (2)
pfaffman
(Jay Pfaffman)
14 فبراير 2025، 1:33ص
15
يو. هل قمت بالمكنسة الكهربائية مؤخرًا؟
helmi
(Helmi)
14 فبراير 2025، 8:12ص
16
لا، كنت أعتقد أن العملية التلقائية لتنظيف القاعدة يجب أن تتولى الأمر؟ أليس كذلك؟
pfaffman
(Jay Pfaffman)
14 فبراير 2025، 6:39م
17
أعتقد أنه يفترض ذلك. لست متأكدًا مما يؤدي إلى تشغيله. أعتقد أن القيام بعملية إضافية لا يضر وقد يوفر لك بعض المساحة. يوصى بذلك بعد إجراء الترقية إذا قمت بها في مكانها. لقد رأيت أنها تنظف مساحة كبيرة عدة مرات.
إذا كانت قاعدة بياناتك بحجم 230 جيجابايت، فسأقوم بالتأكيد باستعادتها إلى خادم جديد. سيكون وقت التعطل للقراءة والكتابة بحجم 230 جيجابايت كبيرًا.
إعجاب واحد (1)