انجمنهای فارسی اوبونتو
کمک و پشتیبانی => نصب، راهاندازی و بروزآوری => نویسنده: SnailMan در 03 شهریور 1395، 07:13 بظ
-
با سلام خدمت اساتيد.
من روي virtualbox كه روي ويندوز نصب هست، يه ubuntu نسخه server و 64 بيتي نصب كردم.
با دستور زير ساعت رو تنظيم كردم:
sudo date --set="24 Aug 2016 17:00:00"
و بعد با دستور زير ساعت سخت افزاري رو هم ست كردم:
sudo hwclock -w
به درستي تنظيم شد.
ولي مشكلي كه هست اينه كه ساعت سيستم جلو مي افته. اگه دست بهش نزنم، بعد از مثلا يك ساعت نيم ساعت جلو مي افته و همينطور ادامه داره.
البته ساعت سخت افزاري سيستم هيچ مشكلي براش پيش نمياد و زمان رو كاملا درست نشون ميده. ولي وقتي با date ساعت رو مي بينم، مشكل هست.
من تازه كار هستم. ممنون مي شم راهنمايي كنيد.
-
کدوم ورژن هست اوبونتو سرور شما؟؟
اگه systemd دارین باید با timedatectl
ntp رو فعال کنید :o : timedatectl set-ntp true
-
ممنون
نسخه 14.04 LTS هست.
دستور بالا نمیدونم چکار می کنه ولی اگه منظورتون این هست که از ntp server ساعت خودش رو آپدیت کنه، نمیخوام اینطوری باشه.
دستور timedatectl رو اصلا نمیشناسه.
یه فدورا هم نصب کردم و اون هم همین مشکل رو داره.
جالب اینجاست که وقتی با hwclock --show می بینم ساعت درست هست. ولی وقتی دستور date رو می زنم این مشکل وجود داره.
-
اینجا یه چیزهایی هست ولی من درست نمیفهمم چکار باید بکنم:
https://forums.virtualbox.org/viewtopic.php?p=107592
-
ممنون
خواهش
دستور timedatectl رو اصلا نمیشناسه.
چون 14.04 از سیستم دی استفاده نمی کنه :D
جالب اینجاست که وقتی با hwclock --show می بینم ساعت درست هست. ولی وقتی دستور date رو می زنم این مشکل وجود داره.
hwclock --localtime --hctosys
دستور بالا نمیدونم چکار می کنه ولی اگه منظورتون این هست که از ntp server ساعت خودش رو آپدیت کنه، نمیخوام اینطوری باشه.
آخه چرا؟ بنده خدا مگه چشه؟ ;D
-
باز هم ممنون
دستوری که گفتید فکر می کنم یکبار فقط ساعت سیستم رو با ساعت سخت افزاری یکی می کنه و احتمالا باز هم عقب می افته.
vb من روی یه سیستم سرور نصب هست و روی اون اینترنت ندارم و راه اندازی ntp server هم درد سرهای خودشو داره بنابراین نمیشه از ntp استفاده کنم.
مثل اینکه توی اون فروم خارجی کاری کرده که مدام زمان با سیستم میزبان sync بشه. که من خیلی خوشم نیومد. می خوام مشکل رو رفع کنم و ساعت درست کار کنه.
الان بعد از 12 ساعت تقریبا دو ساعت و نیم جلو افتاده و همینطور جلو میفته ولی ساعت سخت افزاری رو که می بینم کاملا درست هست.
ببینید من روی فدورا سیستم اکانتینگ سیب رو دارم که زمان براش خیلی مهم هست و بر اساس اون اینترنت به کاربرا میدم.
رو ubuntu هم zabbix نصب هست که اون هم زمان براش مهم هست و اگه کمی زمان خود به خود عقب و جلو بشه نمودارهای گرافیکی بهم نمیده.
-
میگه VirtualBox Guest Additions رو نصب کن رو سیستم میهمان
و بعد خط زیر رو به فایل "/boot/grub/menu.lst" اضافه کن: ' noapic nolapic nosmp divider=10 nolapic_timer '
بعد که سیستم بالا اومد این دستورا تو سیستم مهمان بزن که همون راجبه ntp هستش ;D : /etc/init.d/ntpd stop
ntpdate pool.ntp.org
hwclock --systohc
/etc/init.d/ntpd start
در هر صورت ntp چیز خوبیه و درد و خونریزی نداره و کانفیگش هم سخت نیست
ولی باید ب نت وصل باشی ;)
-
چقدر oncall
من تا اومدم پستمو ویرایش کنم جواب دادید.
ببخشید اونجا گفتم چرا نمیشه از ntp استفاده کنم. :oops: :oops:
-
چقدر oncall
ما اینیم دیگه 8)
دستوری که گفتید فکر می کنم یکبار فقط ساعت سیستم رو با ساعت سخت افزاری یکی می کنه و احتمالا باز هم عقب می افته.
تست کردید؟ ???
ی کاری هم میشه کرد: ی اسکریپت بنویسید بذارید تو استارت آپ هر ۱۰ دقیقه ساعت رو تنظیم کنه :P
غیر اینا راه دیگه ای رو من نمی دونم
امیدوارم دوستان کمکتون کنند
-
باید برم شرکت. انشالا شنبه چک میکنم.
ممنون از وقتی که گذاشتید.
-
درود
مشکل time drifting در ماشین های مجازی بحث مفصلی هستش و رفعش معمولا نیز آنچنان ساده نیست. گاهی اوقات مشکل با تغییر تایمر پیش فرض حل میشود و گاهی اوقات مجبور به پچ کردن نرم افزار مجازی ساز میشوید.
به هر حال، ما سعی می کنیم با ساده ترین روش، یعنی تغییر تایمر پیشفرض مشکل را حل کنیم. یه نکته را مد نظر داشته باشید: تغییر تایمر پیش فرض سیستم میتواند باعث به هم ریختگی محاسبات زمانی برخی نرم افزارها بشود.
ابتدا دستور زیر را اجرا کنید، این دستور لیستی از تایمرهای در دسترس را نشان میدهد:
$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
نمونه ی خروجی برای بنده در فدورا:
kvm-clock tsc acpi_pm
سپس دستور زیر را اجرا کنید. این دستور تایمر پیش فرض را نشان میدهد:
$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
نمونه ی خروجی برای بنده:
kvm-clock
که نشاندهنده ی استفاده ی سیستم از تایمر kvm-clock برای منبع زمانی میباشد. این تایمر به علت استفاده از امکانات kvm و تکنولوژی VT-X زمان را به جای شبیه سازی، مستقیما از میزبان به میهمان منتقل کرده و بسیار دقیق میباشد.
از نظر زمانی بدترین تایمر tsc محسوب میشود. این تایمر کاملا بستگی به فرکانس پردازنده داره. در سیستم های غیرمجازی این تایمر مشکلی ایجاد نمیکند و معمولا به عنوان تایمر پیش فرض سیستم های فیزیکی استفاده میشود. اما در سیستم های مجازی به علت شبیه سازی این تایمر و overhead ها، این تایمر به شدت ناپایدار میباشد.
تایمر نامناسب دیگر HPET نام دارد. این تایمر برعکس tsc بسیار دقیق میباشد و همه چیز به نظر درست کار میکند، اما فرمول محاسبه ی زمانی در آن با فرمول محاسبه ی زمانی در تایمر TSC تفاوت داشته، لذا برخی نرم افزارها دچار ناسازگاری میشوند (و ممکن است مشاهده کنید ساعت سیستم درست کار میکند، اما نرم افزارها رفتار غیرعادی و یا تاخیر های طولانی تر نسبت به TSC دارند). به صورت پیش فرض در هنگام استفاده از qemu-kvm و libvirt این تایمر پیش فرض در دسترس نیست و غیرفعال میباشد و سیستم آن را نخواهد دید (مثل مثال من). فکر کنم در virtualbox هم غیرفعال باشد و در صورت لزوم می توانید فعالش کنید
پس از انتخاب تایمر، نیاز دارید تایمر را تست کنید. با دسترسی روت دستور زیر را وارد کنید: (دستور زیر تایمر را به صورت موقت تا زمان ری استارت به تایمر مورد نظرتان تغییر میدهد)
#echo "selected_timer" > /sys/devices/system/clocksource/clocksource0/current_clocksource
که selected_timer در کد بالا تایمر مورد نظر است (به عنوان مثال hpet). پس از اجرای دستور بالا، به کمک دستورات گفته شده اطمینان حاصل کنید که تایمر تغییر کرده است. پس از اینکه تایمر مناسب خود را انتخاب کردید، برای اعمال آن به صورت همیشگی باید آن را در گراب وارد کنید. فایل گراب را ویرایش کنید و در آپشن های بوت بعد از quiet مقدار زیر را اضافه کنید:
clocksource=selected_timer
که به جای selected_timer تایمر مورد نظر قرار میگیرد (به عنوان مثال hpet). پس از ذخیره و به روزرسانی گراب تغییرات اعمال شده و با تایمر جدید کار خواهید کرد.
موفق باشید
-
تست کردید؟
مهندس چک کردم ولی نشد.
s1mpleworld عزیز ممنون. کلی به آموخته هام اضافه شد. حالا دیگه لا اقل می دونم مشکل چیه.
نمونه ی خروجی برای بنده در فدورا:
kvm-clock tsc acpi_pm
از من هم دقیقا همینه.
نمونه ی خروجی برای بنده:
kvm-clock
باز هم از من همینه.
فکر کنم در virtualbox هم غیرفعال باشد و در صورت لزوم می توانید فعالش کنید
دقیقا درست می گید همینطوره.
واقعا عالی و مفید بود. ممنون.
یه نکته دیگه که یادم رفته بود بگم اینه که VB من روی ویندوز سرور 2003 نصب هست و cpu من 32 بیتی هست. واسه همین زمانی که می خواستم ubuntu 64bit روی VB نصب بکنم نمی شد. وقتی سرچ کردم دیدم گفته بودند باید حالت virtualization مربوط به CPU رو درون CMOS مادربورد فعال کنم. که بعد از انجام این کار مشکلم رفع شد.
ببینید همونطور که گفتم من دو تا نرمافزار دارم که برای هر دو تاشون زمان خیلی مهمه:
یکی نرم افزار اکانتینگ سیب هست که با اون اینترنت رو تقسیم می کنم و روی فدورا نصب هست
یکی دیگه که زمان براش از قبلی مهمتره zabbix هست. نمیدونم با اون چقدر آشنایی دارید ولی اگه بخوام مختصر بگم، این نرم افزار اطلاعات آماری رو از تجهیزاتی که توی شبکه هست مثل روترها و ... می گیره و به صورت نمودار به ما نشون می ده. مثلا من یه میکروتیک دارم که پروتکل SNMP رو روی اون فعال کردم و ترافیک پورتهاش رو با استفاده از zabbix می تونم ببینم. وقتی زمان مشکل داشته باشه نمودارهای درستی بهم نمیده.
به خاطر همین چون گفتید اون الگوریتم های دیگه روی عملکرد نرم افزارها ممکنه تاثیر بذارهclocksource رو عوض نکردم.
راستش الان موندم چکار کنم، پیشنهاد شما چیه؟
1- یه ntp server روی میکروتیکم راه بندازم و از ntp استفاده کنم. که در صورت انجام این کار مثلا هر یک دقیقه باید آپدیت Clock انجام بشه.
2- با استفاده از روش شما clocksource رو عوض کنم (در این صورت به نظرتون کدوم الگوریتم رو بزارم که تاثیر کمتری روی عملکرد نرم افزارهام داشته باشه)
پچ کردن نرم افزار مجازی ساز
این دیگه چیه. یعنی با این مشکل حل نمیشه؟
-
درود
متاسفانه به ویندوز دسترسی ندارم که وضعیت kvm را در ویندوز به عنوان هاست تست کنم. virtualbox را در لینوکس نصب کردم و در حالت kvm,minimal و hyper-v (این تنظیمات در ماشین مجازی از طریق کلیک راست بر روی ماشین مجازی، انتخاب گزینه ی settings و system >>> Acceleration >>> paravirtualization mode قابل دسترسی هستند) تست نمودم.
kvm و minimal: این دو با اختلاف تقریبا ثابت ۱ ثانیه جلوتر از ساعت سیستم، زمان را ردیابی میکردند.
hyper-v: در ابتدا ساعت با اختلاف ۱ ثانیه جلوتر از سیستم شروع به کار کرد، سپس پس از چند لحظه اختلاف به ۲ ثانیه رسید. پس از چند دقیقه کار بدون نصب guest addition ساعت میهمان کاملا با ساعت میزبان هماهنگ شد.
به هر حال در ویندوز ممکن است وضعیت متفاوت باشد. بهتر است vmware را هم تست کنید چون در این شرایط معمولا در ویندوز vmware بهتر عمل میکند. جلو افتادن ساعت، آن هم نیم ساعت به ازای هر ساعت مقدار بسیار غیر عادی است.
-
با سلام خدمت تمامی دوستان
اول می خوام از Ma$oud و بخصوص s1mpleworld عزیز تشکر کنم که خیلی کمک کردند.
در حالت kvm,minimal و hyper-v (این تنظیمات در ماشین مجازی از طریق کلیک راست بر روی ماشین مجازی، انتخاب گزینه ی settings و system >>> Acceleration >>> paravirtualization mode قابل دسترسی هستند) تست نمودم.
من کارهایی رو که گفته بودید انجام دادم و به نتیجه رسیدم. گفتم کامل اینجا بگم تا بقیه هم استفاده کنند:
از قسمت system >>> Acceleration >>> paravirtualization mode ، مقدار Hyper-v رو انتخاب کردم. وقتی سیستم بالا اومد دیگه ساعت اصلا جلو نمی افتاد. \\:D/ \\:D/ \\:D/
یه مشکل دیگه داشتم اونم این بود که ساعت سخت افزاری و ساعت معمولی اختلاف سه ساعت و نیمی داشتند و وقتی یکی رو درست می کردم و با اون یکی sync می کردم، بعد از ریست شدن باز هم مشکل داشتم
بنابراین کارهای زیر رو هم انجام دادم:
از قسمت system>>Motherboard گزینه Motherboard clock in UTC Time رو تیک گذاشتم و OK کردم و ubuntu رو run کردم.
وقتی کامل بالا اومد دستور زیر رو توی ubuntu اجرا کردم و یه بار ubuntu رو ریست کردم:
hwclock --utc
وقتی بالا اومد با دستو زیر ساعت رو تنظیم کردم:
sudo date --set="24 Aug 2016 17:00:00"
بعد هم با دستور زیر ساعت سخت افزاری رو با ساعت اوبونتو sync کردم:
hwclock -w
یه بار سیستم رو ریست کردم و الان داره به خوبی کار می کنه. توی سیب و zabbix هم تا حالا که مشکلی رو ندیدم.
باز هم از همه دوستان تشکر می کنم.