חוקי הפורום

סקלווי: חיבור לקבצים שנמצאים בINSTANCE אחר


  • תכנות

    דובר על האפשרות הזו כבר כמה פעמים, אבל בדוק שלהם לא מצאתי איזכור לזה.

    יש לי שני שרתים בסקלווי, ובאחד מהם יש VOLUME מחובר עם הרבה קבצים. (חיברתי אותו עם MOUNT, לפי ההוראות שהם כותבים)
    עכשיו אני רוצה לגשת לכונן הזה מהשרת השני. יש אפשרות כזו?

    תודה




  • תכנות

    @dovid לא זכיתי להבין
    אפשר הסבר קצר בבקשה?

    תודה



  • @שואף
    למה שלא תשתמש ב buckets?
    https://console.scaleway.com/object-storage/buckets
    זה עובד כמו S3 של אמזון




  • תכנות

    תודה
    אתה חושב שזה יהיה מהיר? אני משתמש בזה להשמעות במערכת טלפונית, וצריך שזה יטוס. יש לי חצאי משפטים מוקלטים, שהמערכת מחברת למשפטים שלמים. אם זה איטי, אז שומעים רווח בין המילים וזה מקשה על ההשמעה



  • @שואף אם אתה רוצה להיות רגוע במהירות תעתיק את זה לשרת המקומי עם פקודת rsync.
    אתה מנסה לחסוך מקום?



  • @dovid אמר בסקלווי: חיבור לקבצים שנמצאים בINSTANCE אחר:

    אתה מנסה לחסוך מקום?

    לכאורה כן.
    הגיוני במרכזיות....


  • תכנות

    לא אני לא רוצה לחסוך מקום, אלא לחסוך עומסים
    לא כל כך רלוונטי להעתיק הקבצים כי יש שינויים כל הזמן
    אני רוצה שיהיה שרת אחד עם הקבצים, ושרתים אחרים עליהם האסטריסק יעבוד, והם ישמיעו את הקבצים שיש באיחסון

    הקמתי BUCKET בסקלווי, עדיין לא הבנתי איך לגשת לזה מהשרת, אבל אני צריך לראות את הדוק שלהם




  • תכנות

    @clickone אמר בסקלווי: חיבור לקבצים שנמצאים בINSTANCE אחר:

    @שואף
    למה שלא תשתמש ב buckets?
    https://console.scaleway.com/object-storage/buckets
    זה עובד כמו S3 של אמזון

    ניסית פעם לחבר את זה ככונן?
    עשיתי לפי ההוראות שלהם, קודם יוצר תיקייה ונותן לה הרשאות, ואחרי זה מעלה שם את הבקט, ואז התיקייה נהיית איקסים.
    פספסתי משהו?

    
    root@PBX100:~# mkdir /var/s3f/a
    root@PBX100:~# chmod 777 /var/s3f/a
    root@PBX100:~# s3fs a /var/s3f/a -o passwd_file=${HOME}/.passwd-s3fs,url=s3.fr-par.scw.cloud
    root@PBX100:~# cd /var/s3f/
    root@PBX100:/var/s3f# ll
    ls: cannot access 'a': Transport endpoint is not connected
    total 0
    d????????? ? ? ? ?            ? a
    

  • תכנות

    הייתי שוב צריך, ומתברר שכנראה הבעיייה היתה שהיה חסר https בURL

    כעת עובד תקין, העלתי הBUCKET בתוך תיקייה, ועכשיו מתוך השורת פקודה אני רואה את הקבצים, יכול להציג רשימת הקבצים, לבדוק כמה שוקל כל קובץ וכו'
    אבל כשהPHP מנסה לגשה לקבצים, הם לא קיימים, ואם אני עושה file_size זה מחזיר לי שגיאה

    filesize(): stat failed for /mnt/data/bucket/welcome.wav
    

    יש כיוון?
    תודה רבה


  • תכנות

    @dovid אחרי הכל חזרתי לעיצה שלך והיא היתה (כמובן) הכי טובה, חיבור לשרת אחר עם SSHFS (שניהם על אותו LAN), הכל תקין ב"ה, החיבור מהיר מאוד, האסטריסק מנגן קבצים בלי השהייה (אולי חצי שניה, אבל אפשר לסבול את זה).
    אם ככה, כנראה מה שאעשה יהיה שרת MYSQL, שרת קבצים (אולי אפשר שניהם על אותו שרת בעצם), וכמה שרתי אסטריסק שמושכים נתונים מהMYSQL ומחוברים בSSHFS לשרת קבצים.

    רק יש נקודה שאני לא יודע איך היא תסתדר, זה שיש לי שלוחות בהם אפשר להשאיר הודעות, וזה כל פעם מסתכל מה המספר של הקבץ האחרון ומוסיף אחד ומייצר קובץ חדש, וכך ההודעות הם בסדר מספרים רץ.
    השאלה מה יהיה אם שני שרתים יגשו לשרת קבצים וישאלו מה הקבץ האחרון, ושניהם ייצרו ביחד קובץ חדש עם אותו שם.. האמת שכבר כעת יש לי את הבעייה אם שני אנשים מתקשרים ביחד ורוצים להשאיר הודעה באותה שניה, ובאמת לא חשבתי על זה עדיין, אבל השאלה אם בצורה הזו שיש כמה מכונות מחוברות בSSH אם זה יהיה יותר חמור.
    מה אומרים?

    @clickone לגבי הבקט, עדיין זה פיתרון נפלא לגיבוי.



  • @שואף אל תעשה מספר רץ, תעשה מספר שמייצג את השיחה הנוכחית או MD5 של הייצוג שלה.

    לגבי החצי שניה של השיהוי, אם לא חסר לך מקום בשרת תוכל להעתיק בתמידות הכל לתיקיה מקומית עם פקודת rsync (ואז יהיה לך עותק מראה).


  • תכנות

    @dovid לא, אני חייב את המיספור רץ, ככה אפשר אחרי זה לאתר הודעות (אנשים יכולים ללחוץ במהלך שמיעת ההודעה ולדעת מה מספר ההודעה, ואחר כך לחזור להודעה הזו לפי המספר.


  • תכנות

    @שואף אמר בסקלווי: חיבור לקבצים שנמצאים בINSTANCE אחר:

    האמת שכבר כעת יש לי את הבעייה אם שני אנשים מתקשרים ביחד ורוצים להשאיר הודעה באותה שניה, ובאמת לא חשבתי על זה עדיין, אבל השאלה אם בצורה הזו שיש כמה מכונות מחוברות בSSH אם זה יהיה יותר חמור.

    לדעתי תעשה שם (ותיקיה) זמני שמורכב ממספר הטלפון ושעון יוניקס.
    ובסיום אישור ההקלטה אתה בודק מה המספק האחרון, ומבצע העתקה/שינוי שם לשם המבוקש.



  • @שואף ב'ימות' ההקלטות בכלל לא נמצאות עד שלא סיימת אותם,
    כנראה מהסיבה הזו.

    העצה של @חוקר הכי לעניין.

    @חוקר אמר בסקלווי: חיבור לקבצים שנמצאים בINSTANCE אחר:

    לדעתי תעשה שם (ותיקיה) זמני שמורכב ממספר הטלפון ושעון יוניקס.
    ובסיום אישור ההקלטה אתה בודק מה המספר האחרון, ומבצע העתקה/שינוי שם לשם המבוקש.


  • תכנות

    @חוקר @MusiCode ברור, לא חשבתי לרגע אחרת. זה כבר מזמן מוגדר ככה שהקלטות נכנסות לTEMP, ורק אחרי האישור זה מעביר אותו לשלוחה המתאימה, ואז זה מחפש מה הקובץ האחרון ויוצר קובץ חדש עם המספר פלוס אחד.
    אבל על זה אני דואג, מה אם בדיוק שני אנשים יאשרו באותה שניה.



  • @שואף אמר בסקלווי: חיבור לקבצים שנמצאים בINSTANCE אחר:

    @dovid לא, אני חייב את המיספור רץ, ככה אפשר אחרי זה לאתר הודעות (אנשים יכולים ללחוץ במהלך שמיעת ההודעה ולדעת מה מספר ההודעה, ואחר כך לחזור להודעה הזו לפי המספר.

    אני עסוק כעת מלענות לך בהרחבה אז רק אומר שזה לא סותר, אתה יכול לתת להם מספר, ולשמור את הקובץ עם זיהוי כמו שאמרתי.


  • תכנות

    @dovid לא הבנתי. ממה נפשך, אם השם של הקובץ הוא לפי מספור רץ, זה לא הזיהוי שאמרת, ואם מה שאמרת, אז זה לא רץ..



  • אולי תבנה מנעול,
    כמו שיש בהרבה שפות תכנות, שמונע גישה של שני משתמשים / תהליכים לקובץ אחד.



  • @שואף
    מה קורה כשאתה סתם ככה מנסה להעתיק לאותו תיקיה פעמיים את אותו קובץ
    לכאורה אמור להיות שגיאה
    אם ככה כשאתה מעתיק מהTEMP לשלוחה המתאימה
    אם הוא מנסה להעתיק את קובץ "123" פעמיים תקבל שגיאה ואז פשוט תעלה עוד קובץ



  • @שואף אני אמרתי לך לא לקרוא לקבצים במספר רץ.
    אלא מה? ייצוג טקסטואלי ייחודי כל שהוא. למשל במקרה הזה אתה יכול לקחת את מס' המשתמש/שיחה + זמן יצירת הקובץ.
    כעת שאתה אומר שאתה רוצה לספק למשתמש מספר איתו הוא יוכל להתייחס לקובץ, תוכל פשוט לתת מספר רץ פר משתמש, או כל דרך ייחודית שתימצא לנכון, בה צירוף המספר שאתה נותן למשתמש יחד עם נתון/נים אחרים ייצור יחודיות. תצטרך לוודא שכשהמשתמש ירצה להתייחס להודעה, תוכל ללדעת את שאר הנתונים וככה להרכיב את מזהה הקובץ שיהיה קימבון של המזהים עם MD5 וכל זה.

    כל זה כתבתי לספורט להעמיד את דברי שלא ירדו לעמוק הסיפור.
    אבל בראיה שניה פשוט לי שהדרך היא להעביר את האחריות הזו למסד - לפני יצירת קובץ אתה יוצר שורה במסד ולוקח את מזהה השורה. ככה גלגלת את בעיית הבו זמניות למסד נתונים שהוא בנוי לעבוד עם זה מצויין.
    עדיין הפתרון של הMD5 טוב למקרה שתרצה ליצור את הקובץ מיייד לפני המסד, ורק אח"כ לעדשכן במסד את המזהה ולשלוף בוו העת עם המספר רץ של המסד.



  • @dovid לדעתי הבעייה שהמספר הרץ שהוא רוצה היא ספציפית לקו, ואילו במסד המספר הרץ הוא לכלל הטבלה
    עדיין אפשר לעדכן את זה בצורה בטוחה עם שאילתת עידכון שתביא MAX +1צ


  • תכנות

    אני משתמש כבר כמה ימים בSSHFS, זה פיתרון נפלא לבעייה שלי
    יש שרת MASTER שעליו הקבצים, ו4 שרתים SLAVE שמחוברים לקבצים שלו

    אבל מידי פעם החיבור לקבצים נופל, ואני מקבל שגיאה

    ls: cannot access 'remoteAsterisk': Transport endpoint is not connected
    

    האם יש הגבלה לכמות השרתים שיכולים להתחבר לMASTER, או אולי רעיון אחר לפתור את זה?
    כשאני עושה UMOUNT ושוב מחבר זה מתחבר. רק זה תוקע את המערכות, עד שאני מזהה שהחיבור נפל אנשים לא שומעים קבצים בתוך השרת הזה


  • תכנות

    כבר תשע חודשים סובל מהבעייה של הניתוקים שכתבתי בהודעה הקודמת. רגע שיש טיפה עומס, נופל החיבור.
    עשיתי CRON שבודק כל דקה אם הכונן מחובר, ואם לא, זה מחבר אותו שוב. אבל עדיין השניות האלה שהכונן מנותק עד שהוא מתחבר שוב, גורמות לבעיות ותסכול אצל לקוחות.

    לפני יומיים שוחחתי עם אחד שמתעסק במרכזיות, ואמר לי שהוא משתמש בNFS, שזה כמו SSHFS אבל בצורה הרבה יותר מהירה (לא דרך הSSH)
    העברתי את המערכות שלי לעבוד דרך זה, ומאז זה עובד חלק, בלי ניתוקים.
    מקווה שיעזור למי שמתמודד עם עומסים.

    מדריך לNFS שהשתמשתי



  • @שואף ובNFS אין לך גם את הבעייה של ההרשאות?
    דווקא לי עובד ב"ה כמה חודשים כבר בלי ניתוקים למרות העומסים
    אבל לפעמים כשיש עומס אני מרגיש דיליי קטנטן


  • תכנות

    @clickone הגדרתי את הNFS לפי ההרשאות שלי, ועובד מצוין. טפו טפו מקווה שימשיך ככה.


התחבר כדי לפרסם תגובה
 

בא תתחבר לדף היומי!