Search Results

Search found 46833 results on 1874 pages for 'distributed system'.

Page 482/1874 | < Previous Page | 478 479 480 481 482 483 484 485 486 487 488 489  | Next Page >

  • Cannot mount one usb disc, although other mounts automatically after 12.10 upgrade

    - by Allen Williams
    Since upgrading to 12.10, switching on or attempting to mount one of my usb hard drives gives this error message: Error mounting system-managed device /dev/sdg1: Command-line `mount "/mnt/usb-ST350041_8AS_60CAFFFFFFFF-0:0-part1"' exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sdg1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so dmesg | tail gives (inter alia): [ 1080.727830] sdg: sdg1 [ 1080.732003] sd 8:0:0:0: [sdg] Attached SCSI disk [ 1081.383633] FAT-fs (sdg1): Unrecognized mount option "x-gvfs-show" or missing value [ 1871.160973] sdg: sdg1 The drive cannot be mounted, but is recognized by the system as a "place". I am not a technical bod; I cannot take this further myself and any help would be much appreciated.

    Read the article

  • To branch or not to branch?

    - by Idsa
    Till recently my development workflow was the following: Get the feature from product owner Make a branch (if feature is more than 1 day) Implement it in a branch Merge changes from main branch to my branch (to reduce conflicts during backward merging) Merge my branch back to main branch Sometimes there were problems with merging, but in general I liked it. But recently I see more and more followers of idea to not make branches as it makes more difficult to practice continuous integration, continuous delivery, etc. And it sounds especially funny from people with distributed VCS background who were talking so much about great merging implementations of Git, Mercurial, etc. So the question is should we use branches nowadays?

    Read the article

  • How to handle updated configuration when it's already been cloned for editing

    - by alexrussell
    Really sorry about the title that probably doesn't make much sense. Hopefully I can explain myself better here as it's something that's kinda bugged me for ages, and is now becoming a pressing concern as I write a bit of software with configuration. Most software comes with default configuration options stored in the app itself, and then there's a configuration file (let's say) that a user can edit. Once created/edited for the first time, subsequent updates to the application can not (easily) modify this configuration file for fear of clobbering the user's own changes to the default configuration. So my question is, if my application adds a new configurable parameter, what's the best way to aid discoverability of the setting and allow the user (developer) to override it as nicely as possible given the following constraints: I actually don't have a canonical default config in the application per se, it's more of a 'cascading filesystem'-like affair - the config template is stored in default/config.json and when the user wishes to edit the configuration, it's copied to user/config.json. If a user config is found it is used - there is no automatic overriding of a subset of keys, the whole new file is used and that's that. If there's no user config the default config is used. When a user wishes to edit the config they run a command to 'generate' it for them (which simply copies the config.json file from the default to the user directory). There is no UI for the configuration options as it's not appropriate to the userbase (think of my software as a library or something, the users are developers, the config is done in the user/config.json file). Due to my software being library-like there's no simple way to, on updating of the software, run some tasks automatically (so any ideas of look at the current config, compare to template config, add ing missing keys) aren't appropriate. The only solution I can think of right now is to say "there's a new config setting X" in release notes, but this doesn't seem ideal to me. If you want any more information let me know. The above specifics are not actually 100% true to my situation, but they represent the problem equally well with lower complexity. If you do want specifics, however, I can explain the exact setup. Further clarification of the type of configuration I mean: think of the Atom code editor. There appears to be a default 'template' config file somewhere, but as soon as a configuration option is edited ~/.atom/config.cson is generated and the setting goes in there. From now on is Atom is updated and gets a new configuration key, this file cannot be overwritten by Atom without a lot of effort to ensure that the addition/modification of the key does not clobber. In Atom's case, because there is a GUI for editing settings, they can get away with just adding the UI for the new setting into the UI to aid 'discoverability' of the new setting. I don't have that luxury. Clarification of my constraints and what I'm actually looking for: The software I'm writing is actually a package for a larger system. This larger system is what provides the configuration, and the way it works is kinda fixed - I just do a config('some.key') kinda call and it knows to look to see if the user has a config clone and if so use it, otherwise use the default config which is part of my package. Now, while I could make my application edit the user's configuration files (there is a convention about where they're stored), it's generally not done, so I'd like to live with the constraints of the system I'm using if possible. And it's not just about discoverability either, one large concern is that the addition of a configuration key won't actually work as soon as the user has their own copy of the original template. Adding the key to the template won't make a difference as that file is never read. As such, I think this is actually quite a big flaw in the design of the configuration cascading system and thus needs to be taken up with my upstream. So, thinking about it, based on my constraints, I don't think there's going to be a good solution save for either editing the user's configuration or using a new config file every time there are updates to the default configuration. Even the release notes idea from above isn't doable as, if the user does not follow the advice, suddenly I have a config key with no value (user-defined or default). So the new question is this: what is the general way to solve the problem of having a default configuration in template config files and allowing a user to make user-specific version of these in order to override the defaults? A per-key cascade (rather than per-file cascade) where the user only specifies their overrides? In this case, what happens if a configuration value is an array - do we replace or append to the default (or, more realistically, how does the user specify whether they wish to replace or append to)? It seems like configuration is kinda hard, so how is it solved in the wild?

    Read the article

  • Managing Files/Folder in Content Repositories or File Systems with Oracle ADF and WebCenter

    - by Shay Shmeltzer
    One more entry in a set of entries (1,2,3) about the capabilities that WebCenter adds to ADF applications. WebCenter is basically the new Portal framework in the Oracle stack - and one key thing that portals do is work with content, allowing you to compose and publish content from files as well as save and store content. In this demo you'll see how using a set of taskflows provided by WebCenter you can add a file management, creation and viewing capabilities to a regular ADF application. To try this out you don't need any fancy content management system - we'll just use your file system for now. All you need is the WebCenter extension installed in JDeveloper, and then you can follow the demo on your own JDeveloper instance. You'll define a connection to your content repository you'll be able to add a bunch of pre-built WebCenter taskflows into your page. And suddenly you can upload/download/create and view document directly from your applicaiton. Check it out:

    Read the article

  • Switch from encrypted partition to unencrypted (Error: cryptsetup: evms_activate is not available)

    - by Chris Lercher
    I initially installed Ubuntu 11.04 with an encrypted file system (from the alternate install CD: Guided Partitioning, LVM encrypted). Now I wanted to change this setup to have my root file system on an unencrypted partition. I had the following setup before: /dev/mapper/my-root on / type ext4 (rw,noatime,errors=remount-ro,commit=0,commit=0) /dev/sda1 on /boot type ext2 (rw,noatime) I backed up /, reformatted /dev/sda5 (which had contained the encrypted LVM device) to an ext3 partition, and restored / to that partition. I edited /etc/fstab, removed the line /dev/mapper/my-root / ..., and added the line: /dev/sda5 / ext3 noatime,rw,errors=remount-ro,commit=0 0 1 I edited /etc/crypttab, and commented out the single entry. On reboot, I get the grub screen as usual, but then I get the message cryptsetup:evms_activate is not available, waiting for encrypted source device. I tried reinstalling Grub2 using a LiveCD with the ChRoot method, but that didn't make any difference. Why is Ubuntu still searching for an encrypted device?

    Read the article

  • Modularity through HTTP

    - by Michael Williamson
    As programmers, we strive for modularity in the code we write. We hope that splitting the problem up makes it easier to solve, and allows us to reuse parts of our code in other applications. Object-orientation is the most obvious of many attempts to get us closer to this ideal, and yet one of the most successful approaches is almost accidental: the web. Programming languages provide us with functions and classes, and plenty of other ways to modularize our code. This allows us to take our large problem, split it into small parts, and solve those small parts without having to worry about the whole. It also makes it easier to reason about our code. So far, so good, but now that we’ve written our small, independent module, for example to send out e-mails to my customers, we’d like to reuse it in another application. By creating DLLs, JARs or our platform’s package container of choice, we can do just that – provided our new application is on the same platform. Want to use a Java library from C#? Well, good luck – it might be possible, but it’s not going to be smooth sailing. Even if a library exists, it doesn’t mean that using it going to be a pleasant experience. Say I want to use Java to write out an XML document to an output stream. You’d imagine this would be a simple one-liner. You’d be wrong: import org.w3c.dom.*; import java.io.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; private static final void writeDoc(Document doc, OutputStream out) throws IOException { try { Transformer t = TransformerFactory.newInstance().newTransformer(); t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, doc.getDoctype().getSystemId()); t.transform(new DOMSource(doc), new StreamResult(out)); } catch (TransformerException e) { throw new AssertionError(e); // Can't happen! } } Most of the time, there is a good chance somebody else has written the code before, but if nobody can understand the interface to that code, nobody’s going to use it. The result is that most of the code we write is just a variation on a theme. Despite our best efforts, we’ve fallen a little short of our ideal, but the web brings us closer. If we want to send e-mails to our customers, we could write an e-mail-sending library. More likely, we’d use an existing one for our language. Even then, we probably wouldn’t have niceties like A/B testing or DKIM signing. Alternatively, we could just fire some HTTP requests at MailChimp, and get a whole slew of features without getting anywhere near the code that implements them. The web is inherently language agnostic. So long as your language can send and receive text over HTTP, and probably parse some JSON, you’re about as well equipped as anybody. Instead of building libraries for a specific language, we can build a service that almost every language can reuse. The text-based nature of HTTP also helps to limit the complexity of the API. As SOAP will attest, you can still make a horrible mess using HTTP, but at least it is an obvious horrible mess. Complex data structures are tedious to marshal to and from text, providing a strong incentive to keep things simple. By contrast, spotting the complexities in a class hierarchy is often not as easy. HTTP doesn’t solve every problem. It probably isn’t such a good idea to use it inside an inner loop that’s executed thousands of times per second. What’s more, the HTTP approach might introduce some new problems. We often need to add a thin shim to each application that we wish to communicate over HTTP. For instance, we might need to write a small plugin in PHP if we want to integrate WordPress into our system. Suddenly, instead of a system written in one language, we’re maintaining a system with several distinct languages and platforms. Even then, we should strive to avoid re-implementing the same old thing. As programmers, we consistently underestimate both the cost of building a system and the ongoing maintenance. If we allow ourselves to integrate existing applications, even if they’re in unfamiliar languages, we save ourselves those development and maintenance costs, as well as being able to pick the best solution for our problem. Thanks to the web, HTTP is often the easiest way to get there.

    Read the article

  • How To Make Disposable Sleeves for Your In-Ear Monitors

    - by YatriTrivedi
    In-ear monitors are great, until the rubber sleeves stop being comfortable. Here’s a quick and cheap way to make disposable ones using foam ear plugs so you can stay comfortable while listening. Latest Features How-To Geek ETC Macs Don’t Make You Creative! So Why Do Artists Really Love Apple? MacX DVD Ripper Pro is Free for How-To Geek Readers (Time Limited!) HTG Explains: What’s a Solid State Drive and What Do I Need to Know? How to Get Amazing Color from Photos in Photoshop, GIMP, and Paint.NET Learn To Adjust Contrast Like a Pro in Photoshop, GIMP, and Paint.NET Have You Ever Wondered How Your Operating System Got Its Name? Lakeside Sunset in the Mountains [Wallpaper] Taskbar Meters Turn Your Taskbar into a System Resource Monitor Create Shortcuts for Your Favorite or Most Used Folders in Ubuntu Create Custom Sized Thumbnail Images with Simple Image Resizer [Cross-Platform] Etch a Circuit Board using a Simple Homemade Mixture Sync Blocker Stops iTunes from Automatically Syncing

    Read the article

  • Turn based battle and formula

    - by Mark Chapman
    I'm building a game called DVP(Digimon Virtual Pet), and in this game other than taking care of your digimon, You can also battle and breed them. I'm working on the battle system (making it first cause the actual pet system will be easy compared to the netplay, or 39DLL)but here is the problem I don't want it to be "too" simple or "too" complicated, but I do want to go by a certain formula. There are str, def, spd, and int. Strength: How hard the attacking digimon is hitting Defense: How much damage your digimon can defend when being attacked Speed: The chance of you missing the enemy Intelligence (battle knowledge): The chance of you hitting a critical hit or defending a critical hit. I can make a super simple turn based example, but I don't know how exactly to make the formulas for what I've explained above, any help?

    Read the article

  • Acting as though the laptop Fn key is pressed

    - by Matt
    I have a Fujitsu laptop and all was working fine until I ended teamviewer. On the keyboard it has a numberpad on some of the letters which you press the Fn button to use. The system is acting like I have the Fn key pressed and I get numbers shown when it should be letters. If I press the Fn key the numbers go to letters. The Fn key is not stuck down. Is there a way to reset keyboard settings or a known fix. The operating system is Ubuntu 11.04 Natty.

    Read the article

  • Ubuntu Server 13.04.3 doesn't boot w/ EFI

    - by user1004816
    I'm was actually trying to install Debian Wheezy (which failed horribly), then tried Ubuntu Server 13.04 and got the exact same problems as w/ Debian: After installing, the system doesn't show any boot-selection and tells me "Missing operating system". My setup is pretty simple: /dev/sdc - 1TB HDD (+ 3 other NTFS HDD) /dev/sdc1 - EFI, 100MiB, bootable /dev/sdc4 - ext4, 65GiB, Ubuntu/Debian (sdc2 & 3 are NTFS w/ data. Sorta lacking SATA-ports, therefore no OS-only HDD/SSD) Grub seems to be installed on /dev/sdc4, /dev/sdc1 only contains a "EFI"-folder. Not sure if thats correct. I used UNetbootin on OS X to make an 8GB USB-drive bootable and used the standard amd64-iso, running a perl-script wich eradicates a couple of naming-errors (different story). Using this tutorial and actually disabling UEFI and using legacy only dind't work either, the usb drive dind't even bother to boot. I'm pretty clueless here. I'd just like to install and use either Debian oder Ubuntu Server!

    Read the article

  • Software development magazines [closed]

    - by Sebastian
    Ive spent the last hour or so browsing the web for professional development magazines. I am mostly interested in the java platform, agile methods, "programming in general" (tutorials on languages or whatever, "hot new stuff" etc) and software craftmanship. My best finding yet was pragpub and maybe MSDN magazine. I am willing to pay and have a Zinio account if anyone knows a magazine about programming that is distributed by them. Ive already browsed a couple of related threads here on stackexchange. ACM and IEEE does not seem relevant, as Im not interested in research articles. Maybe conferences like OOPSLA as somebody mentioned in another thread. PS. I prefer if they are in pdf or readable on kindle or a tablet. DS. BR Sebastian

    Read the article

  • mounting external hard drive EXT4: "the unlocked device does not have a reckognizable filesystem on it"?

    - by user824924
    I'm having problems mounting ext4 partitions(inside a LUKS partition) in external drives. The drives are fine, there is no problem whatsoever with the drives and no filesystem corruption. This happened since a recent automatic system upgrade, and a manual upgrade to kernel 3.12.0. It goes like this: I plug in the external drive Passphrase is asked for luks device luks partition correctly unlocked/opened Instead of proceding with mounting the now exposed ext4 partition there's a pop-up saying: "the unlocked device does not have a recognizable filesystem on it". Same happens in this case: $ gvfs-mount -d /dev/sdc2 Enter a passphrase to unlock the volume The passphrase is needed to access encrypted data on WDC WD250... (250 GB Hard Disk). Password: Error mounting /dev/sdc2: The unlocked device does not have a recognizable file system on it Doing a manual sudo mount /dev/dm-1 /mnt/testfolder works with no errors and there is no problem with the filesystem (fscked). Also there doesn’t seem to be anything useful written to dmesg when this happens. What gives?

    Read the article

  • php+mysql account management software?

    - by kdavis8
    I need an account system added to my website as a plugin to all of my HTML pages. The account system plugin needs to,register new users, log in current users, remove users who want to disconnect service, and manipulate all of these things via database on my web server. However, I do not know how to program in the PHP language or create and manipulate MySQL databases. I want a program that can create and manipulate the MySQL database automatically for my website and handle also PHP calls automatically. Are there any open source freeware programs out there that i can use? If so what are the names of these freeware?

    Read the article

  • Reset Windows Password with Ubuntu Live CD

    - by snix
    A friend brought me his PC with Windows Vista to reset the user password because he didn't use it for a long while and forgot his password. So I found a tutorial on how to reset the password by using a Ubuntu Live CD and the software chntpw. After I installed this software I mounted the SYSTEM partition by opening it with the file explorer. It is now available at /media/SYSTEM/ The tutorial says I have to open the file /windows/system32/config/sam with chntpw and reset the password with chntpw -u USERNAME sam After I did this it didn't show me any errors. So I unmounted the partition and rebooted the PC with the installed Windows Vista. It is still locked with the old password. Did I do any mistakes or is there an other way to reset the password?

    Read the article

  • Run a .sql script file in C#

    - by SAMIR BHOGAYTA
    using System.Data.SqlClient; using System.IO; using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True"; FileInfo file = new FileInfo("C:\\myscript.sql"); string script = file.OpenText().ReadToEnd(); SqlConnection conn = new SqlConnection(sqlConnectionString); Server server = new Server(new ServerConnection(conn)); server.ConnectionContext.ExecuteNonQuery(script); } } }

    Read the article

  • Is it time to drop Courier from your monospace font stacks?

    - by Jeff
    I've been fine-tuning my font stacks lately and was wondering if it's safe to drop Courier from my monospace font stack yet? Would you feel comfortable dropping it? Of course, monospace is my final fallback. Note 1: OS Testbed: WinXP, WinVista, Win7, iPhone, iPad Based on my research, these browsers now substitute Courier New for Courier by default: IE9+ Chrome 2+ Firefox 10+ Safari 3.1+ iDevices Note 2: The default "font-family: monospace;" renders as Courier New in every browser I've tested, from IE6 through the latest iPhone/iPad devices. EDIT: One exception is Opera 12, which renders Consolas on Win. Opera 10 renders Courier New. Note 3: I've noticed that Courier refuses to render with any font smoothing (anti-aliasing) in any browser I've tested, regardless of system and/or browser display settings. Probably because it's an old bitmap font. This could be because of my system setup, however.

    Read the article

  • ubuntu cant be installed as it says GPU lock

    - by piyush bhardwaj
    i have win 7 running on my system i just wanna move to ubuntu 12.10 desktop version 36 bit but when i try to install the CD gets loaded start screen comes but suddenly texts line appears and screen goes black the text are - [189.463934] [drm] [noveau] 0000:02:00.0: GPU LOCK- switching to software fbcon [194.248014] [drm] [noveau] 0000:02:00.0: failed to idle channel 1 [199.504009] [drm] [noveau] 0000:02:00.0: failed to idle channel 3 and it goes on.....like this iam new to the linux system so dnt know much abt it ..so if any body can help me to solve my prblm.. my laptop is of HCL and it has 3 gb ram or 350 gb hard disk with nvidia graphic card ..it has 2 ghz pentium dual core it was manufactured in 2009.. so if any body can help i would be greatful and can be able to join ubuntu..

    Read the article

  • CSV files not being written

    - by Kamalpreet
    I worked on a small project in which the data entered in HTML forms was saved in a CSV file which was used subsequently. The files were run on Apache2. It worked fine. After about 25 days, when I reopened the project, the data entered in forms was not saved in CSV file. I checked all the permissions. I even sent a zip file of my files to one of m friends. It worked well on his system. So should I figure it out there's some problem in the system. I am using Ubuntu 13.04. Kindly suggest me something so that I am able to figure out the problem.

    Read the article

  • Advertising Opportunity – Profit Magazine For Oracle OpenWorld

    - by tfryer
    With Oracle OpenWorld fast approaching, Profit Magazine is offering Oracle Specialized partners the opportunity to extend their brand to executive-level Oracle customers and top prospects in the Profit Magazine: Specialized Partner Edition. The printed magazine will be distributed to Oracle attendees at Oracle OpenWorld San Francisco, and the digital copy will be distribution to over 500,000 customers in the Profit readers circle. In addition, the magazine will be promoted via social media such as Facebook, LinkedIn, and Twitter. For a very affordable advertising opportunity, please contact Tom Cometa at [email protected] or +1.510.339.2403. Reserve before July 27th. Hurry! An early bird discount of 15% applies if booked before July 18th.

    Read the article

  • How does apt-btrfs-snapshot work?

    - by Oli
    I read on the planet that apt-btrfs-snapshot would be available for Natty. The brief description of what it does sounds very nice: it will automatically create filesystem snapshot (of everything but /home) when apt installs/removes/upgrades. With the apt-btrfs-snapshot cli app its easy to list/remove/rollback the snapshots But before I convert my entire life to btrfs for the sole purpose of gaining a built-in backup system, can anybody tell me how btrfs's snapshots work. To my layman's brain, it sounds like this would eat a devastating amount of disk space if you're taking snapshots every time you install or upgrade something (I do this more than once a day). I assume the system is smarter than I'm allowing it but I really don't know. How do the snapshots work?

    Read the article

  • Choose at GRUB menu whether NVidia driver should be used

    - by RobinJ
    For some games, I need the nvidia-current driver, but when it's enabled, I can't get my work done as it messes up everything. So is there a way I can get two options in my GRUB menu? One wich will load my operating system with the nvidia-current drivers, and one which will use the default non-proprietary one? It seems a bit stupid to me to have 2 Ubuntu installations (one for games, one for the rest). But I can't get my daily work done with the Nvidia drivers enabled as it messes up some applications, randomly freezes the system, etc. But I still want to be able to play some games. If there's a way to just load and unload the nvidia-current driver with a script or something, that would also be welcome.

    Read the article

  • Creuna Platform

    - by csharp-source.net
    Creuna Platform is a an open source web application framework based on Microsoft .NET and is fully written in C#. The aim for Creuna Platform is to make life easier for system developers by providing a highly competent component toolkit that increases the productivity and quality of a system. The framework contains components for data access, configuration handling, messaging and a broad range of utility classes, controls and services. The framework also has several components for the EPiServer CMS. Creuna Platform is licensed under Affero GNU General Public License Version 3.

    Read the article

  • XNA Moddable Game - Architecture Design and Reflection

    - by David K
    I've decided to embark on an XNA moddable game project of a simple rogue style. For all purposes of this question, I'm going to not be using a scripting engine, but rather allow modders to directly compile assemblies that are loaded by the game at run time. I know about the security problems this may raise. So in order to expose the moddable content, I have gone about creating a generic project in XNA called MyModel. This contains a number of interfaces that all inherit from IPlugin, such as IGameSystem, IRenderingSystem, IHud, IInputSystem etc. Then I've created another project called MyRogueModel. This references MyModel project, and holds interfaces such as IMonster, IPlayer, IDungeonGenerator, IInventorySystem. More rogue specific interfaces, but again, all interfaces in this project inherit from IPlugin. Then finally, I've created another project called MyRogueGame, that references both MyModel and MyRogueModel projects. This project will be the game that you run and play. Here I have put the actual implementation of the Monster, DungeonGenerator, InputSystem and RenderingSystem classes. This project will also scan the mods directory during run time and load any IPlugins it finds using reflection and override anything it finds from the default. For example if it finds a new implementation of the DungeonGenerator it will use that one instead. Now my question is, in order to get this far, I have effectively 2 projects that contain nothing but interfaces... which seems a little... strange ? For people to create mods for the game, I would give them both the MyModel and MyRogueModel assemblies in which they would reference. I'm not sure whether this is the right way to do it, but my reasoning goes as follows : If I write 1 input system, I can use it in any game I write. If I create 3 rogue like games, and a modder writes 1 rendering system, that modder could use the rendering system for all 3 games, because it all comes from the MyModel project. I come from a more web based C# role, so having empty interface projects doesn't seem wrong, its just something I haven't done before. Before I embark on something that might be crazy, I'd just like to know whether this is a foolish idea and whether there's a better (or established) design principle I should be following ?

    Read the article

  • Broken Gnome panel after Ubuntu Update

    - by Asaf
    Like every single update on Ubuntu system, my graphical system is completely broken after updating to version 11.10 http://i.imgur.com/YIHfA.png As shown in the image, the date is in the middle of the panel, There are many icons missing (network connection icon, skype) There's no right click menu when I try to right click on the panel and many programs don't have their menus (file,edit,view... those things). How do I fix this? I have gnome-panel, I don't want Unity and I'd rather install windows 95 before I switch to it.

    Read the article

  • Best Practices - Dynamic Reconfiguration

    - by jsavit
    This post is one of a series of "best practices" notes for Oracle VM Server for SPARC (formerly named Logical Domains) Overview of dynamic Reconfiguration Oracle VM Server for SPARC supports Dynamic Reconfiguration (DR), making it possible to add or remove resources to or from a domain (virtual machine) while it is running. This is extremely useful because resources can be shifted to or from virtual machines in response to load conditions without having to reboot or interrupt running applications. For example, if an application requires more CPU capacity, you can add CPUs to improve performance, and remove them when they are no longer needed. You can use even use Dynamic Resource Management (DRM) policies that automatically add and remove CPUs to domains based on load. How it works (in broad general terms) Dynamic Reconfiguration is done in coordination with Solaris, which recognises a hypervisor request to change its virtual machine configuration and responds appropriately. In essence, Solaris receives a message saying "you now have 16 more CPUs numbered 16 to 31" or "8GB more RAM starting at address X" or "here's a new network or disk device - have fun with it". These actions take very little time. Solaris then can start using the new resource. In the case of added CPUs, that means dispatching processes and potentially binding interrupts to the new CPUs. For memory, Solaris adds the new memory pages to its "free" list and starts using them. Comparable actions occur with network and disk devices: they are recognised by Solaris and then used. Removing is the reverse process: after receiving the DR message to free specific CPUs, Solaris unbinds interrupts assigned to the CPUs and stops dispatching process threads. That takes very little time. primary # ldm list NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME primary active -n-cv- SP 16 4G 1.0% 6d 22h 29m ldom1 active -n---- 5000 16 8G 0.9% 6h 59m primary # ldm set-core 5 ldom1 primary # ldm list NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME primary active -n-cv- SP 16 4G 0.2% 6d 22h 29m ldom1 active -n---- 5000 40 8G 0.1% 6h 59m primary # ldm set-core 2 ldom1 primary # ldm list NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME primary active -n-cv- SP 16 4G 1.0% 6d 22h 29m ldom1 active -n---- 5000 16 8G 0.9% 6h 59m Memory pages are vacated by copying their contents to other memory locations and wiping them clean. Solaris may have to swap memory contents to disk if the remaining RAM isn't enough to hold all the contents. For this reason, deallocating memory can take longer on a loaded system. Even on a lightly loaded system it took several 7 or 8 seconds to switch the domain below between 8GB and 24GB of RAM. primary # ldm set-mem 24g ldom1 primary # ldm list NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME primary active -n-cv- SP 16 4G 0.1% 6d 22h 36m ldom1 active -n---- 5000 16 24G 0.2% 7h 6m primary # ldm set-mem 8g ldom1 primary # ldm list NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME primary active -n-cv- SP 16 4G 0.7% 6d 22h 37m ldom1 active -n---- 5000 16 8G 0.3% 7h 7m What if the device is in use? (this is the anecdote that inspired this blog post) If CPU or memory is being removed, releasing it pretty straightforward, using the method described above. The resources are released, and Solaris continues with less capacity. It's not as simple with a network or I/O device: you don't want to yank a device out from underneath an application that might be using it. In the following example, I've added a virtual network device to ldom1 and want to take it away, even though it's been plumbed. primary # ldm rm-vnet vnet19 ldom1 Guest LDom returned the following reason for failing the operation: Resource Information ---------------------------------------------------------- ----------------------- /devices/virtual-devices@100/channel-devices@200/network@1 Network interface net1 VIO operation failed because device is being used in LDom ldom1 Failed to remove VNET instance That's what I call a helpful error message - telling me exactly what was wrong. In this case the problem is easily solved. I know this NIC is seen in the guest as net1 so: ldom1 # ifconfig net1 down unplumb Now I can dispose of it, and even the virtual switch I had created for it: primary # ldm rm-vnet vnet19 ldom1 primary # ldm rm-vsw primary-vsw9 If I had to take away the device disruptively, I could have used ldm rm-vnet -f but that could disrupt whoever was using it. It's better if that can be avoided. Summary Oracle VM Server for SPARC provides dynamic reconfiguration, which lets you modify a guest domain's CPU, memory and I/O configuration on the fly without reboot. You can add and remove resources as needed, and even automate this for CPUs by setting up resource policies. Taking things away can be more complicated than giving, especially for devices like disks and networks that may contain application and system state or be involved in a transaction. LDoms and Solaris cooperative work together to coordinate resource allocation and de-allocation in a safe and effective way. For best practices, use dynamic reconfiguration to make the best use of your system's resources.

    Read the article

< Previous Page | 478 479 480 481 482 483 484 485 486 487 488 489  | Next Page >